我的观看页面代码是
@foreach($clients as $client)
<tr>
<td>{{ $client->client_id }}</td>
<td>{{ $client->ip_address }}</td>
<td>{{ $client->netmask }}</td>
<td>
<a href= "del/{{$client->id}}"><button type = "button" class = "btn btn-danger ">
Delete
</button>
</td>
</tr>
@endforeach
我的destroy方法的控制器代码是:
public function destroy($id)
{
$clients = Subnet_behind_client::findOrFail( $id );
$clients->delete();
return view('view2',compact('clients'));
}
我的路线档案是:
Route::get('del/{id}', 'Subnet_Behind_ClientController@destroy');
我可以在视图页面的表格中查看记录,但是我无法从该表格中删除记录。
答案 0 :(得分:1)
您的代码对我来说很好。
顺便说一句,如果您使用主键删除记录,则可以使用 destroy()
https://laravel.com/docs/5.3/eloquent#deleting-models
Subnet_behind_client::destroy( $id );
这样您就不需要获取要删除的记录。它会稍微优化性能。
答案 1 :(得分:0)
您尝试将delete()
方法调用到从findOrFail()
方法返回的记录集合中。
通过执行此操作,您无法访问查询构建器,因为现在您拥有Collection
而不是QueryBuilder
。
为了使其有效,你可以这样做:
$clients = Subnet_behind_client::findOrFail( $id )->delete();
return view('view2',compact('clients'));
希望这有帮助!
答案 2 :(得分:0)
你能用这种方式:
首先打印数据(如果存在)或检查现有条目。
$clients = Subnet_behind_client::where('id', $id)->get();
// dd($clients);
if(count($clients)>0){
Subnet_behind_client::where('id', $id)->delete();
}
我认为这个技巧会对你有帮助。
如果您忘记提及定义控制器的顶部,请确保:
use App\Subnet_behind_client;
答案 3 :(得分:0)
这应该有效:
Subnet_behind_client::destroy( $id );
要删除,我建议使用DELETE
请求代替GET
。