【问题标题】:Variable undefined in Laravel [duplicate]Laravel中未定义的变量[重复]
【发布时间】:2020-08-24 18:44:39
【问题描述】:

我在 Laravel 的代码部分收到未定义变量错误:(这是 index.blade.php 文件)

 @foreach($faqs as $faq) 

  <tr>
  <td>{{$loop->iteration}}</td>
  <td>{{$faq->question}}</td>
  <td>{{$faq->descripton}}</td>
  </tr>

虽然我通过控制器在这个文件中发送变量:

public function index(Request $request)
{

    $faqs = Faq::all();
    return view('admin.faq.index')->with('faqs', $faqs);
}

常见问题解答模型是:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Faq extends Model
{
    //
}

我收到的错误消息是

我该如何解决这个问题? TIA。

【问题讨论】:

  • return view('admin.faq.index')-&gt;with(['faqs'=&gt; $faqs]); 试试这个-&gt;with() 接受数组
  • return view('admin.faq.index')-&gt;with('faqs', $faqs);不正确,应该是一个key/value为return view('admin.faq.index')-&gt;with('[faqs' =&gt; $faqs]);的数组

标签: php laravel laravel-5


【解决方案1】:

您需要在array(-&gt;with() 方法) 中传递数据,或者您也可以使用compact 方法。

return view('admin.faq.index', compact('faqs')); 

或者

return view('admin.faq.index')->with(array('faqs'=>$faqs));

【讨论】:

  • 仍然出现同样的错误。这是文件github.com/yasirarafat28/Royaltyexoticcars/blob/master/…
  • 您在说您仍然收到错误之前是否阅读了答案?因为这就是你解决错误的方法。
  • @NabidAnzum 你需要在你的控制器文件中更改它如果你使用with(),你需要在数组中传递你的faqs数据。 -&gt;with('[faqs' =&gt; $faqs]);
【解决方案2】:

尝试使用compact方法如下:

 public function index(Request $request)
{

    $faqs = Faq::all();
    return view('admin.faq.index',compact('faqs'));
}

【讨论】:

【解决方案3】:

看起来 $faqs 是空的。您可以使用@isset() 进行检查。 https://laravel.com/docs/7.x/blade#if-statements

【讨论】:

  • 他没有要求处理错误,emptyisset 两者都不同
猜你喜欢
  • 1970-01-01
  • 2021-05-11
  • 2014-11-28
  • 1970-01-01
  • 2021-04-19
  • 2023-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多