我有这个问题用模型绑定来销毁多个recor, 我有 RouteServiceProvider.php
public function boot(Router $router)
{
parent::boot($router);
$router->model("offices","App\Office");
}
销毁方法是:(我正在返回$ id来检查):
public function destroy($id)
{
//Office::destroy($id);
return $id;
}
我的网址正在发送
<form id="delete_offices" accept-charset="UTF-8" action="http://localhost/public/offices/18,19" method="POST"><input type="hidden" value="DELETE" name="_method">
<input type="hidden" value="CXnq068rEYlu88gemilBZKh6f4ZL5p7cELmZoe4B" name="_token">
<button type="submit" id="btn_delete" class="btn btn-danger">Delete</button>
</form>
但是当我看到控制器中返回的内容时,只返回一个对象:
{"id":18,"name":"Main",,"phone":"9784773366","email":"","schedule":"Monday-friday: 8am-6pm","country_id":147,"state_id":476,"city_id":1178,"created_at":"2016-05-08 17:22:04","updated_at":"2016-05-08 17:24:57"}
如果我发送有关所有信息的对象,我该怎么做?如果我发送ID 18和19,我应该获得2个办公室,ID为18的办公室信息和ID为19的信息。如果我发送id 23我应该只获得id = 23的办公室信息。
由于
答案 0 :(得分:1)
要覆盖Route :: resource中的任何路由,您应该将其添加到资源
Route::resource('office', 'OfficeController',
['except' => 'destroy']);
然后只需添加路线manualy
答案 1 :(得分:0)
这是我的解决方案。 首先我有路线
Route::resource('office',OfficeController');
因此,这将使所有REST路由如GET,POST,PUT,PATCH和DELETE 全部使用Wildcard {office}, 例如,
Route::get('office/{office}/edit','OfficeController@edit');
Route::delete('office/{office}', 'OfficeController@destroy);
所有路由都具有相同的通配符。 所以因为在routeServiceProvider中我有:
$router->model("offices","App\Office");
我必须逐个重写路线和DELETE ROUTE
Route::delete('office/{office}', 'OfficeController@destroy);
将其更改为:
Route::delete('office/{id}', 'OfficeController@destroy);
这样我就会收到我发送的ID,而不是Office模型。
如果您知道如何覆盖Route
中的任何Route::resource
,那么会更好并避免编写每条路线