我在hasMany
关系中面临一个非常奇怪的问题,
它没有给我任何回报,所以我开始挖掘试图找到一些东西
现在我有了这段代码
回声&#34;echo $item->id ."<br />"; var_dump($item->menuMenuCategories()->getParent()->getKey()); echo "<br>"; var_dump($item->menuMenuCategories()->getParent()->getKeyName());
&#34 ;;$query = $item->menuMenuCategories()->getBaseQuery()->toSql(); echo $query ."<br />";
结果如下:
4 string(1)&#34; 4&#34;
string(2)&#34; id&#34;
从
GS_menu_menu_categories
中选择*GS_menu_menu_categories
。deleted_at
为空GS_menu_menu_categories
。item_id
=?从
GS_menu_menu_categories
中选择*GS_menu_menu_categories
。deleted_at
为空GS_menu_menu_categories
。item_id
=?
你能看到item_id =吗? ??
这就是为什么它没有给我任何东西..
我的模型具有以这种方式定义的关系:
public function menuMenuCategories(){ return $this->hasMany('MenuMenuCategory','item_id'); }
知道它为什么不起作用的任何想法?我有一千个地方的hasMany关系,从来没有遇到过这个问题..
谢谢
答案 0 :(得分:2)
确保您已妥善提供一切;例如,item_id
应位于相关表GS_menu_menu_categories
中,并且应包含id
主键,或者您可以指定它们是否不同,即:
class Item extends Eloquent {
protected $table = 'items';
public function menuMenuCategories(){
// if GS_menu_menu_categories has "the_id" instead of "id" as pk
return $this->hasMany('MenuMenuCategory','item_id', 'the_id');
}
}
使用它像:
$item = Item::with('menuMenuCategories')->find(1); // the item with id 1
使用以下命令访问相关的模型集合
$menuMenuCategories = $item->menuMenuCategories;
$item->menuMenuCategories->first(); // get the first one
$item->menuMenuCategories->get(1); // get the second one
$item->menuMenuCategories->get(2); // get the third one
不要使用它:
$item->menuMenuCategories()
因此,例如,在视图(non-blade
)中:
foreach($item->menuMenuCategories as $category) {
echo $category->propertyName;
}