【问题标题】:Laravel Category Model RelationshipsLaravel 类别模型关系
【发布时间】:2015-05-29 12:16:57
【问题描述】:

我的数据库中有以下表结构。

表格名称:图块

列:id、tile_name、tile_thumb、tile_sn-p

表名:标签

列:id、tag_title

表格名称:tile_tags

列:id、tile_id、tag_id

型号: 平铺、标签、平铺标签

在我的条目主模型类中,我指定了与称为 TileTag 的模型的以下关系,该模型是一个数据透视表。

<?php namespace Tiles;

use Illuminate\Database\Eloquent\Model;

class Tile extends Model {

    protected $table = 'tiles';


   public function tags() {

        return $this->belongsTo('Tiles\TileTag');

    }
}

在我的 foreach 循环期间,它返回 tile_name 和我的表中的任何其他列,除了由关系连接的列。

@foreach($tiles as $tile)       
        <a href="tile/{{$tile->tile_name}}">
            <li class="col-md-4 mix" data-category="{{ $tile->tags->tag_title }}">
                {!! HTML::image($tile->tile_thumb, null, array('class' => 'img-responsive')) !!}
            </li>
        </a>                
@endforeach 

在每个循环中对主要条目进行排序后,如何将我的类别/标签链接到主要条目?

我尝试在循环期间通过 {{ $tile->tags->tag_title }} 返回数据,但它返回一个空字符串。

控制器方法:

类 TileController 扩展控制器 {

/**
 * Display a listing of tiles from the database.
 *
 * @return Response
 */

public function index() {

    // Get tile data from the model
    $tiles = \Tiles\Tile::all();

    return view('pages.index', compact('tiles'));

}

返回数组:

【问题讨论】:

  • 显示负责将数据发送到视图的控制器方法。您可以使用with() 我需要查看控制器才能确定。
  • @Kyslik 嗨!我已将控制器方法添加到我的帖子中。谢谢!

标签: laravel laravel-5


【解决方案1】:

我认为您不必为 Tile_Tag 创建模型。 Laravel 可以开箱即用地处理多对多关系(我想这是关系的类型,因为您使用数据透视表)。你的模型应该是

class Tile extends Model {

protected $table = 'tiles';


 public function tags() {

    return $this->belongsToMany('Tiles\Tag');
 }
}

class Tag extends Model {

protected $table = 'tags';


 public function tiles() {

    return $this->belongsToMany('Tiles\Tile');
 }
}

Laravel 会知道您有一个名为“tag_tile”的数据透视表,其中包含“tag_id”和“tile_id”列。查看相关文档here

然后你可以像这样遍历每个图块的标签集合

@foreach ($tiles as $tile)
         {!!$tile->tile_name!!} 
         @foreach ($tile->tag as $tag)
           {!!$tag->tag_title!!} 
         @endforeach
@endforeach

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-20
    • 2019-04-04
    • 2020-04-02
    • 2015-03-15
    • 2018-07-11
    • 2016-11-01
    相关资源
    最近更新 更多