你好我想,當發生以下情況來更新我的tagtask表(數據透視表)中插入一行:刪除行和數據透視表laravel
因此,例如,我們已經擁有了有3個標籤與它的任務例如市場營銷,開發,會計。現在我們要編輯該任務並刪除這3個標籤並添加一個名爲cooking的標籤。
所以我想到的是從tagtask表中刪除這3個標籤,並在tagtask表中添加標籤'cooking' 。此外,我並沒有從標籤表中刪除標籤,因爲有些任務可能使用市場營銷或開發或會計標籤。
不幸的是關於第一部分是我腦子裏想我不能意識到這一點。要告訴你我已經盡力了,我會第一時間告訴你一件我的觀點的代碼:
{{Form::model($task,array('route'=>array('user.tasks.update', $task->id), 'method'=>'put'))}}
<ul>
<li>
{{Form::label('tag', 'tags')}}
<input type="text" name="tag_name" class="form-control" value='@foreach($task->tagtask as $tt){{$tt->tag['tag_name']}} @endforeach'>
</li>
<li>
{{Form::submit('Edit Task', array('class' => 'btn btn-default'))}}
</li>
</ul>
{{Form::close()}}
這裏是我的TaskController.php用下面的代碼:
所以我使用該代碼取得的成就是,我可以刪除視圖中的3個標籤(如前所述),並添加一個新標籤進行更新。然後將新標籤存儲在tagtask表和標籤表中,但問題是舊的3個標籤仍然位於tagtask表中。雖然他們應該被刪除..有人可以幫助我嗎?很高興我在等待你的回答。無論如何感謝您的回答。
嗨,再次感謝您的回答!您或其他人也可以向我展示它的查詢生成器版本嗎?如果問得太多,那我真的不介意。這是因爲我的好奇心,呵呵。我睡了之後會測試你的代碼,因爲此刻我真的很累.. – superkytoz 2014-10-20 22:51:23
@superkytoz如果你使用Eloquent,你應該使用它,因爲做一些任務要容易得多。使用查詢生成器,您可能會得到如此長的代碼作爲您的代碼 – 2014-10-21 05:53:54
當我使用sync()方法時,出現以下錯誤:調用未定義的方法Illuminate \ Database \ Query \ Builder :: sync()我也製作了一個截圖它:http://i.imgur.com/eJ6CPIv.png這是我在我的控制器中使用的代碼:$ task-> tagtask() - > sync($ tagIds);這裏是住在我的模型任務tagtask()方法:公共職能tagtask() \t {\t \t \t //一對多 \t \t回$這個 - >的hasMany( 'Tagtask', 'id_task',「ID 「); \t} – superkytoz 2014-10-21 08:13:23