我试图在Laravel Eloquent ORM中使用with()
方法调用,但是得到了以下错误。
class DashboardController extends Controller
{
public function __construct()
{
$this->middleware('auth:api');
}
public function formIndex(Request $request)
{
$id = auth()->user()->id;
$item = Groupe::find($id)->with(
[
'etudiants' => function (Builder $query) {
$query->select('id');
}
]
)->first();
return $item;
}
}
class Groupe extends Authenticatable implements JWTSubject
{
public function etudiants()
{
return $this->hasMany('App\Etudiant');
}
}
错误来自您对$Query变量的类型提示,正如错误消息所说,传入的对象是一个关系,而不是原始查询生成器。只需移除类型提示。另外::find()执行一个查询,所以您正在执行2个查询,请使用下面的查询
Groupe::where('id', $id)->with(['etudiants' => function ($query) {
$query->select('id');
}])->first();
此外,您不需要使用回调语法来仅快速加载某些列,回调语法用于对返回的记录进行对比。试试这个吧。
Groupe::where('id', $id)->with('etudiants:id,name,email')->first();
问题内容: 我有两个表,和。一个可以有许多,一个只能属于一个。 在我的模型中,我有一个关系… 在我的模型中,我有一个关系… 现在,我想使用来连接这两个表,但是想要第二个表中的特定列。我知道我可以使用查询生成器,但我不想这样做。 当我在模型中写… 它运行以下查询… 但是我想要的是… 当我使用… 它仅返回第一个表中的列。我想使用第二个表中的特定列。我怎样才能做到这一点? 问题答案: 好吧,我找到了解决
有两个表 表 user id name 1 tom 2 jerry 表 friend id user_id support_id 1 1 1 2 1 2 表 support id name can_fly 1 bird 1 2 dog 0 三个 Model 我想实现如下 sql,意义为 获取 tom 所有会飞的朋友 关系 我这样写,但后边的不会写了,求解。
我有以下型号 订单(id,编号) 细节(id、item_id、计数、user_id等) 项目(id,名称) 猫(id,名称) 用户(id, name)在我的情况下不重要 每个订单都有很多细节 每个细节都属于项目 每个项目都属于一个类别 每个细节都属于用户 我写了这行代码 要获得这样的响应: 但我还需要在item对象中获取category对象,这已经是关系,item属于category我知道我可以进
本文向大家介绍在Laravel中使用MongoDB的方法示例,包括了在Laravel中使用MongoDB的方法示例的使用技巧和注意事项,需要的朋友参考一下 MongoDB实用场景 产品用户访问日志,点击埋点统计信息 业务系统环境参数配置信息 业务系统运行时日志,如laravel.log,nginx.log 使用Homebrew在macoOS安装MongoDB PHP Driver 在macOS中,
我第一次寻找所谓的 Laravel 框架的时候,我的其中一个目标就是要找:利用最简单的操作数据库的方法。后来目标就停在了 Eloquent ORM 上。 今天说一说 Eloquent ORM 的一些不易被发现和使用的方法。 1. 递增和递减函数 平时这么写: $article = Article::find($article_id); $article->read_count++; $articl
我无法将结果附加到查询中。我正在使用页面上的类别筛选结果,并尝试添加分页。当用户单击类别时,只应显示与类别相关的产品,在分页时,我希望保留所选类别。我得到了这个错误: Facade\Ignition\Exceptions\ViewException调用未定义的方法Illumb\Database\Eloquent\Builder::appends()(视图:D:\Xampp\htdocs\Proje