Laravel-我试图从数据库中删除一条记录,返回空值(不起作用)

时间:2018-10-12 08:58:47

标签: php laravel

您好,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');
}

2 个答案:

答案 0 :(得分:5)

您要传递2个变量naamid

因此,$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();
}