【问题标题】:Too few arguments for view error with laravellaravel 视图错误的参数太少
【发布时间】:2020-09-02 23:13:07
【问题描述】:

我在使用 laravel 时遇到问题。我正在尝试在我的视图上发送变量 $codes:

$codes = Code::where('user', $id)->get();
return view('user.edit', ['user' => $user,'codes' => $codes]);

但我得到了那个错误Too few arguments to function e(), 0 passed in 变量 $user 运行良好,但变量 code 运行良好,有人有解决方案的想法吗? 谢谢大家

【问题讨论】:

  • 好像你忘记定义$user变量了。
  • 如果您的视图中有一个空的{{}},也可能发生这种情况
  • 错误来自视图而不是控制器

标签: php laravel eloquent laravel-7


【解决方案1】:

使用这个:-

return view('user.edit')->with('codes',$codes);

您可以通过以下方式获取用户:-

Auth::user()->name;

【讨论】:

  • 但是如果我想发送其他参数,是不是不可能做一个数组?
  • 在 Laravel 7.x 中,你如何制作视图是完全好的,你不应该接受这个答案。
【解决方案2】:

我很确定,如果您遵循 Laravel 命名约定,那么在您雄辩的查询中,列名是 user_id 而不是 user。此外,如果您正在使用此类查询,并且您有外部查询,则可以在模型中定义关系,如下所示:

代码模型

public function user
{
$this->belongsTo(User::class);
}

用户模型

public function codes
{
$this->hasMany(Code::class);
}

代替线

$codes = Code::where('user', $id)->get();

你可以选择:

$codes = $user->codes();

如果你的数据库中没有外国人

$codes = Code::where('user_id', $id)->get();

如果这些都没有帮助,请在返回视图之前 dd() 你的变量,并在评论中与我分享结果。在 laravel 7 中,您返回视图的方式很好。

【讨论】:

  • 我确实设置了 1:n 关系,它适用于录制。但是,我现在无法访问与用户对应的代码列表。 $user= Users::find($id); dd($user->codes); dd() 返回 null
  • 您的模型名称是 User,所以它是 User::find($id) 对吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-14
  • 1970-01-01
  • 1970-01-01
  • 2021-02-07
  • 2020-09-10
相关资源
最近更新 更多