我有这个关系 Artist - has many - Album
艺术家类:
<?php namespace App;
use Illuminate\Database\Eloquent\Model;
class Artist extends Model {
public function albums()
{
return $this->hasMany('App\Album');
}
}
专辑类别:
<?php namespace App;
use Illuminate\Database\Eloquent\Model;
class Album extends Model {
public function artist()
{
return $this->belongsTo('App/Artist');
}
}
如果我这样做:$album->artist
完全没有问题
但是如果我在 Album 类中更改函数名称而不更改模型/类名称:
public function artistInfo()
{
return $this->belongsTo('App\Artist');
}
那么,这将不起作用:$album->artistInfo
。它为我返回 null
附言这不是我的真实模式,但只有在我更改 belongsTo 的函数名称时才会出现问题。
最佳答案
好吧,我找到了正确的答案,事实证明这是一个简单的答案。
在关系函数中指定键(外键和本地键)。对于这个例子:
<?php namespace App;
use Illuminate\Database\Eloquent\Model;
class Album extends Model {
public function artistInfo()
{
return $this->belongsTo('App/Artist','artist_id','id');
}
}
现在您可以照常进行:$artist->artistInfo
或 Album::find(1)->artistInfo->name
关于php - Laravel:更改函数名称时 belongsTo 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29501750/