1.在使用laravel5.3时,我同时在用户模型内使用了Entrust权限管理和softdeletes功能,结果里面restore方法冲突。
2.请问如何解决?
3.已尝试方案:
use EntrustUserTrait,SoftDeletes {
EntrustUserTrait::restore insteadof SoftDeletes;
}
use EntrustUserTrait { restore as private restoreA; }
use SoftDeletes { restore as private restoreB; }
public function restore()
{
$this->restoreA();
$this->restoreB();
}
两个网上的方案都不行
4.这是我的路由:
Route::group(['prefix' => 'admin', 'middleware' => ['auth']], function (){
Route::get('/users/trash', 'Auth\UserControllers\UsersTrashController@index');
Route::post('/users/trash/{id}', 'Auth\UserControllers\UsersTrashController@store')->name('userTrash.restore');
Route::delete('/users/trash/{id}', 'Auth\UserControllers\UsersTrashController@destroy');
Route::resource('/users', 'Auth\UserControllers\UsersController');
Route::get('/permissions/{id}/edit', 'Auth\UserControllers\PermissionsController@edit')->name('perms.edit');
Route::patch('/permissions/{id}', 'Auth\UserControllers\PermissionsController@update')->name('perms.update');
Route::resource('/roles', 'Auth\UserControllers\RolesController');
});
这是我的控制器中store方法:
public function store($id)
{
$user = User::findOrFail($id);
$user->restore();
return redirect()->back();
}
这是我视图里面的表单:
{{ Form::open(['method' => 'delete', 'route' => ['userTrash.restore', $user -> id]]) }}
<button type="submit" class="btn btn-success waves-effect waves-light btn-sm">
<i class="fa fa-check"></i>
</button>
{{ Form::close() }}
这是php的一个bug,参见https://bugs.php.net/bug.php?...
我所尝试出的一个workaround是同时use这两个含有相同方法名的trait,并且给他们分别指定别名(参见 https://3v4l.org/eJUbG)
对于你的例子,那就是