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

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

Answers:

Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 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 IlluminateDatabaseEloquentModel;

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

ItemModel.php
<?php

namespace App;

use IlluminateDatabaseEloquentModel;

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

ItemDestributionModel.php
<?php

namespace App;

use IlluminateDatabaseEloquentModel;

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

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

You can find more about Eloquent Relation from Here.


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x