首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在路由声明中使用withTrashed方法时的自定义模型绑定和模型中的resolveRouteBinding

在路由声明中使用withTrashed方法时的自定义模型绑定和模型中的resolveRouteBinding
EN

Stack Overflow用户
提问于 2021-12-03 10:06:46
回答 2查看 267关注 0票数 0

对于隐式模型绑定,路由上, for ,软删除模型,我遇到了问题。使用withTrashed方法时,不调用Model中的resolveRouteBinding方法。当withTrashed方法从路由声明中删除时,将按预期调用方法resolveRouteBinding

复制步骤:

路由/web.php

代码语言:javascript
运行
复制
Route::get('user/{user}', function(SoftDeletedModel $user) {
    dd($user);
})->withTrashed(); //withTrashed is used

模型/SoftDeletedModel.php

代码语言:javascript
运行
复制
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上也存在一个问题

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-12-03 10:55:38

您需要使用此方法resolveSoftDeletableRouteBinding而不是resolveRouteBinding

代码语言:javascript
运行
复制
    /**
     * 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);
    }
票数 1
EN

Stack Overflow用户

发布于 2022-02-17 05:54:05

由于Laravel v8.55.0,在路由中支持withTrashed()

代码语言:javascript
运行
复制
Route::post('/user/{user}', function (ImplicitBindingModel $user) {
    return $user;
})->middleware(['web'])->withTrashed();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70212540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档