vendredi 13 mai 2016

Multilevel Relationship in Laravel 5.1

I have three tables and i want to make multiple relationship between then orders,order_details,book

enter image description here

i want to make a common relation between then to take values in a single array .I am using following Code

Order.php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Order extends Model
{
    public $timestamps = false;
    protected $table='orders';

    public function orderDetails(){
        return $this->hasMany('App\OrderDetail','order_id');
    }
}

OrderDetail.php

namespace App;

use Illuminate\Database\Eloquent\Model;

class OrderDetail extends Model
{
    //
    public $timestamps = false;
    protected $table='order_details';

    public function orders(){
        return $this->belongsToMany('App\Order');
    }

    public function book(){
        return $this->hasMany('App\Book');
    }

}

and Book.php

public function orderDetail(){
        return $this->hasManyThrough('App\OrderDetail','App\Book','id','item');
    }

where item is foreign key and primary key in book table

in OrderController.php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Order,App\OrderDetail,App\Book,App\User;
use Auth;
use App\Http\Requests;
use Response;
use App\Http\Controllers\Controller;

class OrderController extends Controller
{
    public function userOrders(){OrderDetail::find($orderId)->where('order_id',$orderId)->where('item','book.id')->get(); }



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire