【发布时间】:2014-09-21 11:07:15
【问题描述】:
我有 2 个模型。
用户:
class User extends Eloquent implements UserInterface, RemindableInterface {
protected $table = 'users';
public function group ()
{
return $this->belongsTo('Group');
}
}
和组:
class Group extends Eloquent {
protected $table = 'groups';
}
用户表在group 列上有一个外键,它引用组表上的id。
架构可能会有所帮助
Schema::table('users', function ($table) {
$table->foreign('group')
->references('id')
->on('groups')
->onDelete('cascade');
});
当我尝试获取用户组时:
User::find(1)->group()->name
我得到了错误
Undefined property: Illuminate\Database\Eloquent\Relations\BelongsTo::$name
按要求分组架构:
Schema::create('groups', function ($table) {
$table->increments('id');
$table->string('name');
$table->integer('permission');
});
这里有一些屏幕:
用户表
组表:
还有 users 表 FK
编辑
@Cryode 在聊天会话中为我解决了这个问题。问题是我的名字有冲突。模型方法使用与列名相同的名称 (group)。只需更改数据库中的列名即可解决问题。
【问题讨论】:
-
向我们展示组架构。
-
我添加了组架构@TimWithers
标签: php mysql sql laravel relationship