php - Laravel:更改函数名称时 belongsTo 不起作用

标签 php laravel eloquent relationship laravel-5

我有这个关系 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->artistInfoAlbum::find(1)->artistInfo->name

关于php - Laravel:更改函数名称时 belongsTo 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29501750/

相关文章:

mysql - Laravel 在其中一列上使用 distinct 获取多个列

php - 如何在 PHP 中创建可调用的方法/函数

php - log_message 在 codeigniter 的应用程序文件夹下不工作

php - 基于特定产品类别的 WooCommerce 结帐消息

javascript - 使用复选框标记要删除的行

php - Eloquent 查询多重关系深层

php - 我可以在Laravel Eloquent中手动向数据加载模型吗?

php - PHP 类中的 Mysqli

css - 是否有将 Google 字体添加到 Laravel 元素的最佳实践?

php - Laravel 已安装,但连接已重置/未收到数据