Laravel5如何将数组传递给视图

Laravel5如何将数组传递给视图,laravel,Laravel,我对如何将变量从控制器传递到视图感到困惑。我知道在stockoverflow上已经有很多关于这方面的内容,但是找不到一个有效的,请告诉我正确的方向。多谢各位 控制器 class StoreController extends Controller { public function index() { $store = Store::all(); // got this from database model return view('sto

我对如何将变量从控制器传递到视图感到困惑。我知道在stockoverflow上已经有很多关于这方面的内容,但是找不到一个有效的,请告诉我正确的方向。多谢各位

控制器

 class StoreController extends Controller

 {
    public function index()
    {
        $store = Store::all(); // got this from database model
        return view('store', $store); 
    }
 {
看法

试试这个:

    class StoreController extends Controller
 {
    public function index()
    {
        $store = Store::all(); // got this from database model
        return view('store')->withStore($store); 
    }
 }


View :


{{$store->id}}
一般来说,您有三种选择

  • 返回视图('store')->带有('store',$store)

  • 返回视图('store')->带存储($store)

  • 返回视图('store')->带有(compact('store'))

  • 1.创建名为
    store
    的变量,该变量将在
    视图中可用,并将值存储在变量
    $store

    2.上述一项的速记

    3.也是一个缩写,它创建与传递值相同的变量名

    现在在
    视图中
    可以使用

    {{$store->name}


    这三种方法都是相同的

    到目前为止提供的两个答案都能解决您的问题,但也值得一提的是,您最初将
    $store
    作为
    view()
    的第二个参数提供的方法几乎是正确的。您缺少的是参数必须是要传递给视图的变量数组

    我可能会选择
    returnview('store',compact('store')
    但是您也可以使用
    返回视图('store',['store'=>$store])

    试试这个

    public function index()
    {
        return view('store', ['store' => Store::all()]); 
    }
    
    然后,您可以在评论中访问$store

    更新:如果您已经在代码中定义了变量,并且希望在视图中使用相同的名称,那么也可以使用
    compact
    方法

    例如:

    public function index()
    {
        $store = Store::all();
    
        return view('store', compact('store')); 
    }
    

    即使其他方法工作得很好,建议使用compact()助手作为参数

    public function index()
    {
      $stores = Store::all(); // got this from database model
    
      return view('store', compact('stores')); 
    }
    
    在laravel 5.2中,“with()”方法也用于将数据闪存到视图中,compact helper可以处理多个变量


    资料来源:Laravel文档和个人体验。

    我在使用

    return view('store', compact('store'));
    

    但是我在blade文件中使用了
    来进行测试。我改成了
    {{}
    blade语法,现在一切都很好。

    它适合我。您可以像这样使用“compact”:

    控制器:

    class StoreController extends Controller
    {
      public function index()
      {
          $store = Store::all(); // 'don't forget' use App\Driver;
          return view('store', compact('store')); 
      }
    }
    
    不要忘记库:
    使用App\Store

    视图:

    在视图中,您有一个数组,其中所有数据都只是调用
    {{$store}
    如果需要特定的数据,请使用以下内容:

    @foreach($store as $data)
       {{ $data->name }}
    @endforeach
    

    别忘了使用Laravel的“Forms&HTML”,这里是文档的链接:

    在幼虫v5.6.3中,我将数组从控制器传递到视图,如下所示

    $data = array(
        'title' => 'Welcome to Laravel',
        'services' => ['Web Design', 'Programming', 'SEO']
    );
    
    return view('pages.index', compact('data'));
    
    在HTML中,您可以将数组读取为

    @if(count($data['services']) > 0)
        <ul>
            @foreach($data['services'] as $service)
            <li>{{$service}}</li>
            @endforeach
        </ul>
    @endif
    
    @if(计数($data['services]])>0)
    
      @foreach($data['services']作为$service)
    • {{$service}}
    • @endforeach
    @恩迪夫
    在第6、7章中:

     class StoreController extends Controller
    
     {
        public function index()
        {
            $store = Store::all(you can write your filed name here); // got this from database model
            return view('store', compact($store)); 
        }
     {
    

    如果它对您有帮助,请将我的答案设置为解决方案^^它有效!我被困的时间最长,试着按照文档中说的
    returnview('store',$store)
    您介意用Store(…)
    解释一下吗?我看到了另一个答案,它只对(…)执行
    ?是的,您可以同时使用这两个代码:returnview('view')->withVariable($variable);或者:返回视图('view')->带('variable',$variable);:)在view.blade.php中调用它的语法是什么?它们都一样吗?是的,这三种方法都一样。谢谢,现在我知道第二个参数必须是
    key=>value
    通过文档很难理解这个概念,因为我假设数组已经是
    key=>value
    格式。没问题。在学习Laravel时,我花了很长时间才发现将数组作为第二个参数传递甚至是一种选择。我早期的代码有很多
    returnview('view.name')->带有something($something)->带有somethingElse($somethingElse)!最佳答案,因为它不需要额外的“with()”方法。
    
    @if(count($data['services']) > 0)
        <ul>
            @foreach($data['services'] as $service)
            <li>{{$service}}</li>
            @endforeach
        </ul>
    @endif
    
     class StoreController extends Controller
    
     {
        public function index()
        {
            $store = Store::all(you can write your filed name here); // got this from database model
            return view('store', compact($store)); 
        }
     {