Php larvel:Controller方法在调用时接收空参数

Php larvel:Controller方法在调用时接收空参数,php,laravel,Php,Laravel,在网站开发过程中,我遇到了这个问题。我试图从视图中的窗体调用控制器方法。这是视图中的代码: {{ Form::open(array('route' =>['deletes', $client])) }} {{ Form::button('Delete', ['class'=>'btn btn-danger', 'type'=>'submit']) }} {{ Form::close() }} 如您所见,我试图将对象$client传递给路由所引用的方法。路线定义如下:

在网站开发过程中,我遇到了这个问题。我试图从视图中的窗体调用控制器方法。这是视图中的代码:

{{ Form::open(array('route' =>['deletes', $client])) }}
    {{ Form::button('Delete', ['class'=>'btn btn-danger', 'type'=>'submit']) }}
{{ Form::close() }}
如您所见,我试图将对象
$client
传递给路由所引用的方法。路线定义如下:

Route::post('/client_show/destroy','ClientsController@destroy')->name('deletes');
这是ClientController方法:

public function destroy(Client $client) {
    $client->delete();
    return redirect('/client_show')->with('success', 'Deleted');
}
问题是,即使
$client
对象确实以表单形式初始化,只要调用
destroy(client$client)
$client
变量就在那里为空。因此,删除过程失败,不会删除任何内容。我试过使用

'url' =>['/client_show/destroy', $client]

相反,每次我得到一个空的对象时,似乎什么都不起作用。谢谢您的帮助。

您尚未在路线定义中定义任何路线参数。因此,当调用
destroy()
controller方法时,它将被传递一个普通的
newclient
对象

将route参数添加到您的route中,您应该很好:

Route::post('/client_show/destroy/{client}', 'ClientsController@destroy')->name('deletes');

您可以查看。

您尚未在路由定义中定义任何路由参数。因此,当调用
destroy()
controller方法时,它将被传递一个普通的
newclient
对象

将route参数添加到您的route中,您应该很好:

Route::post('/client_show/destroy/{client}', 'ClientsController@destroy')->name('deletes');

您可以查看。

您需要将
{client}
添加到路由:

Route::post('/client_show/destroy/{client}','ClientsController@destroy')->name('deletes');
然后需要传递ID,而不是整个对象:

{{ Form::open(['route' => ['deletes', $client->id]]) }}

您需要将
{client}
添加到路由:

Route::post('/client_show/destroy/{client}','ClientsController@destroy')->name('deletes');
然后需要传递ID,而不是整个对象:

{{ Form::open(['route' => ['deletes', $client->id]]) }}

您的表单很可能会发送一个GET notPOST@UnamataSanatarai,使用显式的
'method'=>'POST'
尝试了它,但它没有帮助,并且您的表单很可能发送GET notPOST@UnamataSanatarai,使用显式的
'method'=>'POST'
进行了尝试,但没有任何帮助,因为雄辩的模型实现了
UrlRoutable
接口,您可以传递整个对象,它将自动拉出id并在url中使用它。@patricus不知道这一点。谢谢。由于雄辩的模型实现了
UrlRoutable
接口,您可以传递整个对象,它会自动拉出id并在url中使用。@patricus不知道这一点。谢谢