为什么这不起作用?
Article::with('category')->find($ids)
我有一个数组到字符串的转换异常。
但是,如果我将查询分成如下两部分:
$articles = Article::with('category')
和
$articles = $articles->find($ids)
我没有得到任何异常,结果是正确的。
只是为了后代......你可以这样做的其他方式是:
Article::with('category')->whereIn('id', $ids)->get();
这应该更快,因为它将查询留给数据库管理器
尝试:
Article::with('category')->get()->find($ids);
您需要先获取文章,然后才能调用 find() 我相信。
警告:这会从数据库中检索每篇文章并将它们全部加载到内存中,然后从所有数据中仅选择一篇并将其返回。这可能不是您想要处理此问题的方式。
这将为您提供基于 Laravel 4 中的 ID 数组的结果
Article::whereIn('id', $ids)->with('category')->get();
创建对象并使用关系设置他的属性
例如,您的控制器或服务中的代码
$article = new Article;
$article = $article->find($id);
$result->article = $article;
$result->article->category = $article->category;
return response()->json($result);
模型中的代码
public function category() {
return $this->hasOne('App\Category');
}