【发布时间】:2020-10-28 23:50:18
【问题描述】:
我正在用 Laravel 做一个项目。我想返回客户的语言......但由于某种原因,我返回了一个空的响应。一位客户只能使用一种语言,而许多客户可以使用一种语言。
这是语言的模型:
public function customers()
{
return $this->hasMany('App\Customer', 'language_id', 'id');
}
这是客户的模型:
public function language()
{
return $this->belongsTo('App\Language', 'id', 'language_id');
}
这就是我试图返回的:
return Customer::where('customer_id', $customerId)->first()->language()->pluck('language_id');
我应该收到FR、IT、EN...等值,但我只收到[]。
可以帮忙吗?
【问题讨论】:
-
你不需要
id和language_id;这些是由您的模型名称和主键自动确定的 :) 您可以只使用hasMany(Customer::class)和belongsTo(Language::class),这实际上可能会解决它:) -
如果你像
public function language() { return $this->belongsTo('App\Language', 'language_id')->withDefault(); }这样改变客户模型的关系,你会得到什么? -
我收到了正确的回报!
标签: laravel