【问题标题】:How to fix problem with _construct function after Route Model Binding?如何解决路由模型绑定后的 _construct 函数问题?
【发布时间】:2020-01-01 15:25:48
【问题描述】:

设置控制器和视图以显示数据库中的特定条目后,我想使用 Route Model Binding 的 laravel 函数从数据库中获取数据并将其传递给视图。但是我收到以下错误:

Symfony\Component\Debug\Exception\FatalThrowableError 抛出 消息“参数 2 传递给 Symfony\Component\HttpFoundation\RedirectResponse::__construct() 必须 是整数类型,给定数组,调用 C:\xampp\htdocs\laravel\Cyber​​chess\vendor\laravel\framework\src\Illuminate\Routing\Redirector.php 在第 203 行"

我已尝试将此行添加到 TrustProxy:

protected $headers = Request::HEADER_X_FORWARDED_ALL;

正如互联网推荐的那样,但是当我打开文件时,我意识到它已经在代码中了。 我的创建/存储工作正常,这就是为什么我认为它与路由模型绑定有关。我目前正在使用 getRouteKeyName() 将密钥更改为“AccID”,因此它应该可以工作。

//my controller
public function show(account $account){

        //$account = account::where(['AccID' => $account])->get();
        //dd($account);

        return redirect('user.show', compact('account'));

    }
//my model
class account extends Model
{
    public function getRouteKeyName() {
        return 'AccID';
    }
    public $timestamps = false;


}
//my view
<h1 class="title">Your Profile</h1>
<p>{{ $account->Nick }}</p>

我希望它可以正常工作(duh),但收到了错误消息。当我 dd();数据,它在#attributes 和#original 中有我想要的信息。 如果如果注释 dd() 并让 return 工作,我会收到错误。

【问题讨论】:

    标签: php laravel eloquent


    【解决方案1】:

    redirect() 辅助函数用于从服务器发送重定向 301 响应,而您想要的是返回一个 view,就像这样

    public function show(account $account)
    {
       $account = account::where(['AccID' => $account])->get();
       return view('user.show', compact('account'));
    
    }
    

    【讨论】:

    • 成功了,谢谢。另外:你不需要整个 $account = 行来让它工作。
    猜你喜欢
    • 2019-09-05
    • 1970-01-01
    • 2018-12-12
    • 1970-01-01
    • 2019-03-14
    • 2019-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多