前提・実現したいこと
ControllerからModelへ2つの値を渡してクエリを実行したいです。
以下の方法を試しましたが、うまく行きませんでした。
Controller
$data = $this->request->getData(); $query = $this->Carts->find('InCart', [ 'data' => $data, ]);
Model
public function findInCart(Query $query, $data) { return $query ->select(['id', 'product_num']) ->where(['MemberUsers.id' => $data['member_user_id']]) ->where(['Carts.product_id' => $data['product_id']]) ->contain(['MemberUsers']) ->first() ; }
Modelの3行目(return $queryの前)で
debug($data); exit();
と実行すると以下の値が取得できます
[ 'data' => [ 'member_user_id' => (int) 1, 'product_id' => '1', 'product_num' => '1' ] ]
原因としては、以下の値をModelの3行目(return $queryの前)でデバックするとnullが返って来ているので$dataの取得方法が合っていないことだとわかりました。
$data['member_user_id'] $data->member_user_id
こちらはどのように書き換えれば、$dataの中身を取得できるのでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。