我一直在努力将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";
}
如何解决此问题?
答案 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);