【问题标题】:How to display name instead of id如何显示名称而不是 id
【发布时间】:2015-09-29 12:37:49
【问题描述】:

我有两张桌子:albumscategories

我正在使用foreach 循环显示专辑详细信息,该循环在我的索引页面中包含category_id

我想显示category_name 而不是category id

我正在使用 Laravel

控制器代码..

public function index() {
    $albums = Album::all();
    $categories = DB::table('albums')
        ->join('categories','albums.category_id','=','categories.id')
        ->select('*')->get();

    return view('admin.profile.index',compact('albums','categories'));
}

查看代码:

@foreach($albums as $album)
  <tr>
    <td>{{$album->album_name}}</td>
    <td>I want to diplay category_name here</td>
    <td>{{$album->created_at}}</td>
    <td>
      <input type="image" src="images/icn_edit.png" title="Edit">
      <input type="image" src="images/icn_trash.png" title="Trash">
    </td>
  </tr>
@endforeach

我想在第二个&lt;td&gt; 标签内显示category_name

【问题讨论】:

  • 您将albumscategories 都传递给视图。这似乎是多余的。您已经在查询中加入了 2。从外观上看,您只需将categories 传递给视图并通过它循环。也别做select *,拿走你需要的。
  • 我应该如何继续如果我不通过两者,那么我将如何在第二个 标记中获取 Category_name。请提出任何其他方式
  • 您正在对 2 个表进行基本连接,您将获得所需的所有信息。 var_dump 类别,看看你得到了什么。

标签: php laravel foreach


【解决方案1】:

首先在您的模型中,创建关系,按照以下步骤操作:-

相册.php

public function category()
    {
        return $this->belongsTo('Category', 'id');
    }

Categories.php

public function categories()
    {
        return $this->hasMany('Album');
    }

控制器

public function index()
    {
        $albums = Album::all();

        return View::make('admin.profile.index', compact('albums'));
    }

查看

 @foreach($albums as $album)
      <tr>
        <td>{{ $album->album_name }}</td>
        <td>{{ $album->category->title }}</td>
        <td>{{ $album->created_at }}</td>
      </tr>
    @endforeach

【讨论】:

    【解决方案2】:

    在控制器中添加列选择,例如:

    public function index()
        {
         $albums = Album::all();
    
    $categories = DB::table('albums')
        ->join('categories','albums.category_id','=','categories.id')
        ->select('*,categories.category_name as cat_name')->get();
    return view('admin.profile.index',compact('albums','categories'));
    
       }
    

    查看代码:

      @foreach($albums as $album)
                <tr>
    
                    <td>{{$album->album_name}}</td>
                    <td>{{$album->cat_name}}</td>
                    <td>{{$album->created_at}}</td>
                    <td><input type="image" src="images/icn_edit.png" title="Edit"><input type="image" src="images/icn_trash.png" title="Trash">           </td>
                </tr>
                    @endforeach
    

    【讨论】:

      猜你喜欢
      相关资源
      最近更新 更多
      热门标签