newEntities(array $data, array $options = []) * @method \CakeCarts\Model\Entity\CartItem get(mixed $primaryKey, array|string $finder = 'all', \Psr\SimpleCache\CacheInterface|string|null $cache = null, \Closure|string|null $cacheKey = null, mixed ...$args) * @method \CakeCarts\Model\Entity\CartItem findOrCreate($search, ?callable $callback = null, array $options = []) * @method \CakeCarts\Model\Entity\CartItem patchEntity(\Cake\Datasource\EntityInterface $entity, array $data, array $options = []) * @method array<\CakeCarts\Model\Entity\CartItem> patchEntities(iterable $entities, array $data, array $options = []) * @method \CakeCarts\Model\Entity\CartItem|false save(\Cake\Datasource\EntityInterface $entity, array $options = []) * @method \CakeCarts\Model\Entity\CartItem saveOrFail(\Cake\Datasource\EntityInterface $entity, array $options = []) * @method iterable<\CakeCarts\Model\Entity\CartItem>|\Cake\Datasource\ResultSetInterface<\CakeCarts\Model\Entity\CartItem>|false saveMany(iterable $entities, array $options = []) * @method iterable<\CakeCarts\Model\Entity\CartItem>|\Cake\Datasource\ResultSetInterface<\CakeCarts\Model\Entity\CartItem> saveManyOrFail(iterable $entities, array $options = []) * @method iterable<\CakeCarts\Model\Entity\CartItem>|\Cake\Datasource\ResultSetInterface<\CakeCarts\Model\Entity\CartItem>|false deleteMany(iterable $entities, array $options = []) * @method iterable<\CakeCarts\Model\Entity\CartItem>|\Cake\Datasource\ResultSetInterface<\CakeCarts\Model\Entity\CartItem> deleteManyOrFail(iterable $entities, array $options = []) */ class CartItemsTable extends Table { /** * Initialize method * * @param array $config The configuration for the Table. * @return void */ public function initialize(array $config): void { parent::initialize($config); $this->setTable('cart_items'); $this->setDisplayField('id'); $this->setPrimaryKey('id'); $this->belongsTo('Carts', [ 'foreignKey' => 'cart_id', 'joinType' => 'INNER', 'className' => 'CakeCarts.Carts', ]); } /** * Default validation rules. * * @param \Cake\Validation\Validator $validator Validator instance. * @return \Cake\Validation\Validator */ public function validationDefault(Validator $validator): Validator { $validator ->scalar('foreign_key') ->allowEmptyString('foreign_key'); $validator ->uuid('foreign_key_uuid') ->allowEmptyString('foreign_key_uuid'); $validator ->scalar('model') ->requirePresence('model', 'create') ->notEmptyString('model'); $validator ->uuid('cart_id') ->notEmptyString('cart_id'); $validator ->integer('position') ->allowEmptyString('position'); $validator ->integer('qty') ->requirePresence('qty', 'create') ->notEmptyString('qty'); return $validator; } public function validationRequiresPricing(Validator $validator): Validator { $validator = $this->validationDefault($validator); $validator ->decimal('price') ->requirePresence('price', 'create') ->allowEmptyString('price'); $validator ->decimal('subtotal') ->requirePresence('subtotal', 'create') ->notEmptyString('subtotal'); return $validator; } /** * Returns a rules checker object that will be used for validating * application integrity. * * @param \Cake\ORM\RulesChecker $rules The rules object to be modified. * @return \Cake\ORM\RulesChecker */ public function buildRules(RulesChecker $rules): RulesChecker { $rules->add($rules->existsIn(['cart_id'], 'Carts'), ['errorField' => 'cart_id']); return $rules; } }