Php 如何获得型号';你的亲戚叫什么名字?
有没有办法称呼一个关系的名字 与此相反:Php 如何获得型号';你的亲戚叫什么名字?,php,laravel,Php,Laravel,有没有办法称呼一个关系的名字 与此相反: $user->comments()->create([]); 我想用这样的东西: $relation = 'comments'; $user->getRelation($relation)->create([]); $relation = 'comments'; $user->$relation->create([]); 我已经试过了,但是我得到了: "Undefined index: comments" 您
$user->comments()->create([]);
我想用这样的东西:
$relation = 'comments';
$user->getRelation($relation)->create([]);
$relation = 'comments';
$user->$relation->create([]);
我已经试过了,但是我得到了:
"Undefined index: comments"
您的意思是提供动态关系名称吗?如果是这样,您可以这样做:
$relation = 'comments';
$user->getRelation($relation)->create([]);
$relation = 'comments';
$user->$relation->create([]);
我想你必须更具体一点。但如果你想从与雄辩者的关系中获得结果,你可以:
$books = App\Book::with('author')->get();
其中作者,是一种关系
来源:
有两个场景需要考虑。
1) 当您创建了一个用户并且没有附加注释时,getRelation($string)
返回错误:取消定义索引关系名称
2) 当你有一个带注释的用户,并通过getRelation($string)
查找关系时,它就像一个符咒
解决此问题的方法是首先加载关系。让我给你举个例子
$user = new User();
$relation = 'comments';
//load method is used to load a relation.
$user->load($relation)->create(['field_name'=>"SOME VALUE"]);
试试看,让我知道它是否有效。
$user->$relationship()->create()
应该可以做到。Glat它有帮助。:)