How can i display a table with two foreign keys in laravel

南笙酒味 提交于 2019-12-12 02:46:10

问题


I have 3 tables

Users
-------------
user_id  (PK)
user_name

Items_distributed
-------------
user_id (FK) 
item_id(FK)

Item List
-----------------
item_id(PK)
item_name

Now i need to print Items_distributed table by taking both the user_id and item_id and dispaly their item_name and user_name

i dont know how to display both things at a time if i display either item_name or user_name its working but when i try to print both it is not working . Can any one solve my problem .

This is how i print the values

in controller i use like this $itemdata=item::orderBy('user_id','desc')->paginate(10); and in view i use

  @foreach($itemdata as $value)  
                    <tr>  
                        <td>{{$value->items->item_name}}</td>  
                        <td>{{$value->users->user_name}}</td>  
                        <td>{!!Html::link("editItem/",'Edit',array('class'=>'btn-sm  btn-warning margin-left-btn'))!!}
                            {!!Html::link("deleteItem/".$value->item_id,'Delete',array('class'=>'btn-sm btn-warning margin-left-btn'))!!}</td>
                    </tr>
  @endforeach

回答1:


You should use Laravel Eloquent Relationship. When you create model file for DB Table, You just put relation with other model.

If Relation has set, than Laravel it self fetch data from Related table.

In your case, Three models are created.

1) User Model.

2) Item Model.

3) ItemDestributed Model.

UserModel.php

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    /**
     * Other code goes here
    **/
    public function itemDestribution()
    {
        return $this->hasMany('App\ItemDistribution','foreign_key');
    }
}

ItemModel.php

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Items extends Model
{
    /**
     * Other code goes here
    **/
    public function itemDestribution()
    {
        return $this->hasMany('App\ItemDistribution','foreign_key');
    }
}

ItemDestributionModel.php

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class ItemDestribution extends Model
{
    /**
     * Other code goes here
    **/
    public function user()
    {
        return $this->belongsTo('App\User','foreign_key_of_user');
    }

    public function item()
    {
        return $this->belongsTo('App\Item','foreign_key_of_item');
    }
}

You can find more about Eloquent Relation from Here.



来源:https://stackoverflow.com/questions/39509088/how-can-i-display-a-table-with-two-foreign-keys-in-laravel

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!