laravel - Laravel orm with() 不起作用
问题描述
JoinSkipReason 没有id,但是JoinReview 的主键是JoinSkipReason 的外键。
查询生成器运行良好...
我想使用 with() 将 JoinSkipReason 加入到 JoinReview 表中。
谢谢你。
JoinReview::with(
'join_skip_reason'
);
class JoinReview extends Model
{
public function joinSkipReason()
{
return $this->hasOne('App\Models\Service\JoinSkipReason');
}
}
class JoinSkipReason extends Model
{
protected $fillable = ['join_review_id', 'reason'];
public function joinReview()
{
return $this->belongsTo('App\Models\Service\JoinReview', 'id');
}
}
解决方案
我自己也遇到过这个问题,问题是为了急切加载多词关系,你应该使用 camelCase。
在您的代码中:
JoinReview::with(
'joinSkipReason'
);
我还发现了一个(有点旧的)问题,说您还应该以 camelCase 的形式访问预先加载的关系,否则它将忽略缓存的结果并再次查询数据库。
推荐阅读
- ios - 如何从表格视图单元格中的图像手势获取 indexPath
- fortran - 如何使用 gfortran 编译联合/映射
- ios - 没有 Cocoapods - 需要手动为 iOS 添加性能监控
- yocto - Yocto 添加覆盖目录树
- python - 将整数个新类对象添加到列表中
- firebase - 如何将数据存储在firebase中而无需一次又一次地键入键值?
- c++ - 如何使用 C++ 调整文本文件中代码的缩进?
- html - 如何在按钮单击时构建 Angular HTML 模板?
- angular - 在 Angular 8 中调用 httpClient.delete() 时无法处理 HTTP/404
- c++ - 没有使用 CMFCButton 类调用 BCN_HOTITEMCHANGE 通知