【问题标题】:Php 8 error Cannot use positional argument after named argumentPhp 8 错误不能在命名参数后使用位置参数
【发布时间】:2021-06-08 12:03:08
【问题描述】:
public function index(){

 $products = Product::all();

return view(view:'admin.products.index', compact(varname: 'products'));

}

此函数的目的是从我的数据库中检索数据并显示在运行它的页面上,但我不断收到标题中提到的错误

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    问题不言自明:

    return view(view:'admin.products.index', compact(var_name: 'products'));
    

    这里你使用了命名参数view,然后是一个没有名字的参数,即一个位置参数。您需要将其更改为:

    return view(view:'admin.products.index', data: compact(var_name: 'products'));
    

    正如@Repox 提到的,compact 中的参数名称也是var_name

    【讨论】:

      【解决方案2】:

      compact function 的参数名称拼写错误。应该是var_name 而不是varname

      public function index() {
      
          $products = Product::all();
      
          return view(view:'admin.products.index', compact(var_name: 'products'));
      
      }
      

      【讨论】:

      • @Repox。感谢指点,我不知道它改变了:)
      • @Repox 我进行了更改,但最终还是出现了同样的错误
      • @G-guy 当然,这是因为您在命名参数之后在view() 中有一个定位参数。请参阅@apokryfos 答案。
      【解决方案3】:

      可以写得更简单

      return view('admin.products.index', compact('products'));
      

      紧凑(数组|字符串 $var_name ,数组|字符串 ...$var_names ):数组

      https://www.php.net/compact

      【讨论】:

      • 输入的内容与您输入的内容完全相同,但仍然出现相同的错误
      • 抱歉,我没有看到您的观点:,答案已更新,请参阅@apkryfos 答案,这是最好的解释
      猜你喜欢
      • 2021-08-12
      • 1970-01-01
      • 1970-01-01
      • 2013-07-28
      • 2020-01-23
      • 2021-10-23
      • 1970-01-01
      • 2018-03-03
      • 2012-04-29
      相关资源
      最近更新 更多