2017-05-12 19 views
0

私はテーブルsavedItemsを持っています。それはPKofユーザーと製品を持っています。ログインしているユーザーごとに、カート内のすべてのアイテムを表示したい(たとえば、savedItems/view/23)。複合キーを持つテーブルのCakePHPビュー

public function view($id = null) 
    { 
     $usersavedproduct = $this->saveditems->get($id, [ 
      'contain' => ['Products', 'Users'] 
     ]); 

現在のところ、ユーザーIDだけが入力されているため、nullになります。これをどうすれば管理できますか?あなたがそのような何かを取得使用することができます

答えて

0

:それはあなたのすべてのデータを与えるとなりますので

$articles = TableRegistry::get('Articles'); 
$article = $articles->get($id); 
// Get a single article, and related comments 
$article = $articles->get($id, [ 
    'contain' => ['Comments'] 
]); 

使用してデータを取得するための方法を見つけることは、あなたに単一の行を与える:

$this->saveditems->find() 
    ->where(['id' => $id]) 

は、このドキュメントを確認します。 https://book.cakephp.org/3.0/en/orm/retrieving-data-and-resultsets.html

0

異なる方法で結合テーブルを使用する必要があります。あなたのsaved_itemsテーブルは以下の構造を持っている場合:ID、USER_ID、PRODUCT_IDを次のように、あなたが行うことができます:UsersTableで

:ProductsTableで

$this->belongsToMany('Products', [ 
     'joinTable' => 'saved_items', 
    ]); 

  1. は、ユーザーと商品テーブルを結合します:

    $this->belongsToMany('Users', [ 
         'joinTable' => 'saved_items', 
        ]); 
    
    1. は、その保存された製品とユーザーを見つけることUsersTableにクエリを実行します。

      $ユーザ=の$ this - > Users-> GET($ idは、[ は 'を含む' => [ '製品'] ]);

    これは、関連付けられた製品エンティティを持つユーザーエンティティを提供します。詳しい読書:https://book.cakephp.org/3.0/en/orm/associations.html

関連する問題