【发布时间】:2022-01-15 07:41:30
【问题描述】:
我花了几个小时试图解决这个问题,但我只是不明白我做错了什么。
我想获取我的帖子 id 与表 bewerbungens 的 id 相同的表的所有条目。
所以我得到了每个用户的所有应用程序,以及用户申请的帖子的相应标题。
我之前在这里问过一个问题,并获得了添加关系的资源,我做到了,如下所示:
Bewerbungen 型号:
protected $fillable = [
'bewerber_email',
'Stellenanzeigen_ID',
'is_Accepted',
'accept_Date',
'is_Canceled',
'cancel_Date',
'is_Received',
'receive_Date',
'is_Canceled_Bewerber',
'cancel_Date_Bewerber',
'lebenslauf_File',
'zeugnis_File',
'anschreiben_File',
'weitere_Doks',
];
public function post() {
return $this->belongsTo('Post', 'Stellenanzeigen_ID', 'Bewerbung_ID');
}
在我的 Post 模型中:
protected $fillable = [
'titel',
'startdate',
'enddate',
'beschreibung',
'standort',
'type_name',
'abteilung_name',
'kontakt',
'isActive',
'lebenslauf',
'zeugnisse',
'anschreiben',
'weitere_Doks',
'is_Permitted',
'job_start',
];
public function bewerbungen() {
return $this->belongsToMany(Bewerbungen::class);
}
这是我尝试获取条目的控制器代码:
$dummy = Post::with('Bewerbungen.post')->get();
但我得到了错误:
SQLSTATE[42S02]:未找到基表或视图:1146 表“portal.bewerbungen_post”不存在(SQL:选择bewerbungens.*、bewerbungen_post.post_id 为pivot_post_id、bewerbungen_post.@ 987654329@ as pivot_bewerbungen_id from bewerbungens inner join bewerbungen_post on bewerbungens.id = bewerbungen_post.bewerbungen_id where bewerbungen_post.post_id in (1, 2, 4))
我也试过这个:
$dummy = Post::where('id', 'Stellenanzeigen_ID')->get();
但它只是返回一个空集。
我该如何解决这个问题?
编辑:发布模型
protected $fillable = [
'titel',
'startdate',
'enddate',
'beschreibung',
'standort',
'type_name',
'abteilung_name',
'kontakt',
'isActive',
'lebenslauf',
'zeugnisse',
'anschreiben',
'weitere_Doks',
'is_Permitted',
'job_start',
];
public function location() {
return $this->hasOne(Standort::class);
}
public function job_type() {
return $this->hasOne(Jobtypes::class);
}
public function bewerbungen(): BelongsToMany
{
return $this->belongsToMany(Bewerbungen::class, 'bewerbungens');
}
我有评论中建议的 bewerbungen() 方法,我只是在玩弄它,所以它看起来不同,但它目前没有使用,因为它不起作用
【问题讨论】:
-
你能用
$dummy = Post::with('Bewerbungen.post')->toSql();检查SQL吗?它会给你SQL查询,你可以直接在数据库工具中运行。 -
@SuryapalRao 我得到这个然后:“从
posts中选择*Bewerbungen.post为空”