您好,StackOverflow用户,
我正在尝试使用destroy函数从数据库中删除一条记录,但是它返回一个空值。我认为使用关系模型与我有关。
Club_info.blade.php:
@foreach ($speler as $s)
<tr>
<td>{{$s->speler_naam}}
<a href="{!! url()->current() !!}/delete/{{$s->id}}">×</a>
</td>
</tr>
@endforeach
路由文件:
Route::get('/view/{naam}/delete/{id}', 'VoetbalController@destroy');
控制器:
public function destroy($id)
{
$speler = Speler::where('id', $id)->delete();
$speler->delete();
}
型号:
public function speler()
{
return $this->belongsTo('App\Speler', 'naam', 'club_naam');
}
答案 0 :(得分:5)
您要传递2个变量naam
和id
。
因此,$id
函数中的destroy
将自动获取第一个参数{naam}
的值。您需要在控制器的destroy
函数中添加2个参数。
您已经明智地调用了delete()
方法。
将您的控制器功能更改为
public function destroy($naam, $id)
{
$speler = Speler::where('id', $id)->delete();
}
答案 1 :(得分:1)
如果路由中没有魔术逻辑,则说明您的销毁函数中缺少$naam
变量。
您要删除的是删除,因此不需要第二个删除。
public function destroy($naam, $id)
{
Speler::where('id', '=', $id)->delete();
}