对于隐式模型绑定,在路由上, for ,软删除模型,我遇到了问题。使用withTrashed方法时,不调用Model中的resolveRouteBinding方法。当withTrashed方法从路由声明中删除时,将按预期调用方法resolveRouteBinding。
复制步骤:
路由/web.php
Route::get('user/{user}', function(SoftDeletedModel $user) {
dd($user);
})->withTrashed(); //withTrashed is used模型/SoftDeletedModel.php
use SoftDeletes;
public function resolveRouteBinding($value, $field = null) {
dd("Successfully Substituted Bindings when using WithTrashed."); //This is not displayed.
return parent::resolveRouteBinding($value, $field);
}这是已知的窃听器还是我哪里出错了?在github上也存在一个问题
发布于 2021-12-03 10:55:38
您需要使用此方法resolveSoftDeletableRouteBinding而不是resolveRouteBinding。
/**
* Retrieve the model for a bound value.
*
* @param mixed $value
* @param string|null $field
*
* @return \Illuminate\Database\Eloquent\Model|null
*/
public function resolveSoftDeletableRouteBinding($value, $field = null)
{
return parent::resolveSoftDeletableRouteBinding($value, $field);
}发布于 2022-02-17 05:54:05
由于Laravel v8.55.0,在路由中支持withTrashed():
Route::post('/user/{user}', function (ImplicitBindingModel $user) {
return $user;
})->middleware(['web'])->withTrashed();https://stackoverflow.com/questions/70212540
复制相似问题