現在のテーブルにデータを保存した後、関連するテーブルの行を更新しようとしています。私は2つのテーブル、リストとキューを持っているとします。キューには、listing_idの外部キーがあります。だから私はもちろん、リストのIDを含む新しいキューを保存しました、どのようにリストテーブルのリストのステータスフィールドを更新することもできますか?例えば、 "一時停止"から "待機中"へ?ます$ this-> loadModel: 他のテーブルの関連する行を更新するcakephp 3
は私のコードは、これはトリックをした$queue = $this->Queues->newEntity();
$queue->listing_id = $this->request->data['id'];
$queue->user_id = $this->Auth->user('id');
if ($this->Queues->save($queue)) {
$this->response->body("success");
$this->redirect(array('controller'=>'ListingsController','action' => 'changeStatus', $this->request->data['id'], "queued"));
}
協会
一覧表
$this->table('listings');
$this->displayField('name');
$this->primaryKey('id');
$this->addBehavior('Timestamp');
$this->belongsTo('Users', [
'foreignKey' => 'user_id',
'joinType' => 'INNER'
]);
キュー表
$this->table('queues');
$this->displayField('id');
$this->primaryKey('id');
$this->belongsTo('Listings', [
'foreignKey' => 'listing_id',
'joinType' => 'INNER'
]);
$this->belongsTo('Users', [
'foreignKey' => 'user_id',
'joinType' => 'INNER'
]);
[関連付けられたデータを保存する](http://book.cakephp.org/3.0/en/orm/saving-data.html#saving-associations)のドキュメントから始めてみてください。 – drmonkeyninja
最初にモデルの関連付けを記述してください。 'newEntity()'を作成している間に関連付けをロードし、両方のモデルデータを保存するだけです。 –
お返事ありがとうございます。その文書を何度も何度も読んだことがあると私は信じています。ちょうどそれを把握することはできません。私はフレームワークに少し新しく、私はそれが私が行方不明の単純なものになることを知っている。モデル団体が何を意味しているのですか?あなたが意味すると思うもので質問を更新しましょう。ありがとう – degee147