【问题标题】:Undefined variable Laravel Foreach未定义的变量 Laravel Foreach
【发布时间】:2018-05-05 21:39:37
【问题描述】:

我想获取一些数据,但它说它不知道变量:

我得到的错误:

    ErrorException in dbda158712a631f22ffd888cd244c74e60f3a433.php line 51:
Undefined variable: albums (View:        /var/www/clients/client2/web2/web/resources/views/album.blade.php)

这是我的代码:
Album.blade.php

@foreach($albums as $others)
    <option value="{{$others->id}}">{{$others->name}}</option>
@endforeach

我的相册控制器功能

  public function getAlbum($id)
  {
    $album = Album::with('Photos')->find($id);
    return View::make('album')
    ->with('album',$album);
  }

  public function getList()
  {
    $albums = Album::with('Photos')->get();
    return View::make('index')
    ->with('albums',$albums);
  }

【问题讨论】:

  • 使用@foreach($album as $others)
  • @CharlotteDunois 这给了我以下错误:尝试获取非对象的属性
  • 发布完整错误信息
  • 返回视图怎么样('album', ['album' => $album]):
  • ErrorException in dbda158712a631f22ffd888cd244c74e60f3a433.php line 52: Trying to get property of non-object (View: /var/www/clients/client2/web2/web/resources/views/album.blade.php)

标签: php laravel blade


【解决方案1】:

您正在通过视图 Album.blade.php 传递专辑变量,它是单个对象,而不是对象数组,因此您不能在循环中迭代。

我认为你做错了。

你想在 index.blade.php 中做 foreach,因为这里你传递了 albums 变量。

您需要在 getList 函数中返回视图 album.blade.php。

【讨论】:

  • 但我也需要索引中的 getList,有没有办法可以在多个视图中返回它?
  • 你想在两个刀片文件中列出?如果是,那么您不能在一个函数中返回两个视图,但您可以通过视图传递多个变量
【解决方案2】:

试试这个代码。

 public function getAlbum($id)
 {
      $albums=albums::with('Photos')->get();

       $album=albums::with('Photos')->find($id);

       return view('album',compact('albums','album'));

 }

【讨论】:

    猜你喜欢
    • 2020-02-28
    • 1970-01-01
    • 2022-11-29
    • 2020-11-03
    • 1970-01-01
    • 1970-01-01
    • 2019-04-29
    • 1970-01-01
    • 2015-05-15
    相关资源
    最近更新 更多