Eloquent Codeigniter 中的关系

Eloquent Relationship in Code Igniter

我一直致力于将 Laravel 的 Eloquent 关系集成到我的 Code Igniter 项目中。所以我按照 http://jamieonsoftware.com/post/90299647695/using-eloquent-orm-inside-codeigniter-with-added 中的步骤操作。一切正常。但是当我开始映射关系时,我得到类似

的错误
Fatal error: Call to undefined method Products::hasMany()

以下是我的产品模型文件

use \Illuminate\Database\Eloquent\Model as Eloquent;

class Product extends Eloquent{

protected $table = "products";

public function getActive(){
    return Product::where('status', 1)->get();
}

public function Price(){
    return $this->hasMany('Price', 'product_id');
}
}

这是我的价格模型

use \Illuminate\Database\Eloquent\Model as Eloquent;

class Price extends Eloquent{

protected $table = "price"; 
}

如何解决这个问题?

你必须调用它:

$product = Product::with('price')->get();

$product = Product::all();
$productPrice = $product[0]->price;

不是

 $product = Product::Price();

一些信息: 如果你有一个 1:n 关系,你可以更好地定义它 "prices":

public function prices(){
    return $this->hasMany('Price', 'product_id');
}

如果一个产品有一个以上的价格更利于阅读:

$product = Product::with('prices')->find(1);