Laravel 5 Laravel 5.1中的多层次关系

Laravel 5 Laravel 5.1中的多层次关系,laravel-5,laravel-5.1,Laravel 5,Laravel 5.1,我有三个表,我想在它们之间建立多个关系 订单、订单详情、书籍 我想在它们之间建立一个公共关系,然后在单个数组中获取值 Order.php namespace App; use Illuminate\Database\Eloquent\Model; class Order extends Model { public $timestamps = false; protected $table='orders'; public function orderDetail

我有三个表,我想在它们之间建立多个关系 订单、订单详情、书籍

我想在它们之间建立一个公共关系,然后在单个数组中获取值

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');
    }
}
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');
    }

}
public function orderDetail(){
        return $this->hasManyThrough('App\OrderDetail','App\Book','id','item');
    }
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(); }
OrderDetail.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');
    }
}
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');
    }

}
public function orderDetail(){
        return $this->hasManyThrough('App\OrderDetail','App\Book','id','item');
    }
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(); }
Book.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');
    }
}
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');
    }

}
public function orderDetail(){
        return $this->hasManyThrough('App\OrderDetail','App\Book','id','item');
    }
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(); }
其中项是book表中的外键和主键

在OrderController.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');
    }
}
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');
    }

}
public function orderDetail(){
        return $this->hasManyThrough('App\OrderDetail','App\Book','id','item');
    }
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(); }

你能告诉我们更多关于什么不起作用的情况吗?期望的结果是什么?你得到了什么?你能告诉我们更多关于什么不起作用的信息吗?期望的结果是什么?你得到了什么?