代码点火器中的雄辩关系

时间:2015-01-19 08:31:55

标签: codeigniter laravel eloquent relationship

我一直在努力将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"; 
}

如何解决此问题?

1 个答案:

答案 0 :(得分:2)

你必须打电话给它:

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

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

不是

 $product = Product::Price();

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

public function prices(){
    return $this->hasMany('Price', 'product_id');
}
如果产品的价格超过一个,那么阅读会更好:

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