Php Laravel口才好的关系不起作用
我试图用雄辩的belongsTo在两个表之间创建一个关系,但它似乎不起作用 这两个表是文档和部门,每个文档属于一个部门 文件Php Laravel口才好的关系不起作用,php,sql,database,laravel,eloquent,Php,Sql,Database,Laravel,Eloquent,我试图用雄辩的belongsTo在两个表之间创建一个关系,但它似乎不起作用 这两个表是文档和部门,每个文档属于一个部门 文件 id INT department INT 部门 id INT name varchar(255) 这是定义关系的函数 public function department(){ // department: foreign key // id : departments table primary key return $this->b
id INT
department INT
部门
id INT
name varchar(255)
这是定义关系的函数
public function department(){
// department: foreign key
// id : departments table primary key
return $this->belongsTo('\App\Department' , 'department' , 'id');
}
public function department() {
return $this->belongsTo('App\Department', 'department');
}
这是访问器函数
public function getDepartmentAttribute(){
return $this->department()->first()->name;
}
它返回以下错误消息:未定义属性:App\AjaxSearch::$department在文档表add中
department_id INT Foreign
在您的文档迁移中
$table->integer('department')->unsigned();
还可以编辑关系
public function department(){
// department: foreign key
// id : departments table primary key
return $this->belongsTo('\App\Department' , 'department' , 'id');
}
public function department() {
return $this->belongsTo('App\Department', 'department');
}
更新
好的,根据你的更新,你可以得到这样的部门名称
$doc = Document::find(1);
$name = $doc->department->name;
在文档表中添加
department_id INT Foreign
在您的文档迁移中
$table->integer('department')->unsigned();
还可以编辑关系
public function department(){
// department: foreign key
// id : departments table primary key
return $this->belongsTo('\App\Department' , 'department' , 'id');
}
public function department() {
return $this->belongsTo('App\Department', 'department');
}
更新
好的,根据你的更新,你可以得到这样的部门名称
$doc = Document::find(1);
$name = $doc->department->name;
您需要检查相关记录是否存在
public function department()
{
return $this->belongsTo('App\Department', 'department');
}
$document是您当前的文档记录
$name = (empty($document->department->id) === false) ? ($document->department->name) : '';
您需要检查相关记录是否存在
public function department()
{
return $this->belongsTo('App\Department', 'department');
}
$document是您当前的文档记录
$name = (empty($document->department->id) === false) ? ($document->department->name) : '';
您确定$this是文档模型吗?您从何处调用此getDepartmentAttribute?从名为AjaxSearch的模型中,它使用文档表。您是否可以删除\App\Department之前的斜杠以拥有App\Department?我希望您不要使用引号,只需键入Department::class,这样您就可以保存。您没有键入到部门模型的错误路径,因为这将自然导致类。不幸的是,这不会影响任何内容,仍然收到相同的错误是否确定$this是一个文档模型?从何处调用此getDepartmentAttribute?从名为AjaxSearch的模型中,它使用文档表。是否可以删除\App\Department之前的斜杠以拥有App\Department?我希望您不要使用引号,只需键入Department::class,这样您就可以保存。您没有键入到部门模型的错误路径,因为这将自然导致类。不幸的是,这不会影响任何内容,仍然收到相同的错误我也编辑了关系,但是它返回了试图获取非对象错误属性的结果检查我的更新是否有帮助。否则,我将尝试agian。尝试获取非object属性时仍然返回相同的错误,然后尝试检查部门是否存在。dd$doc->department;我也编辑了关系,但它返回试图获取非对象错误属性检查我的更新,如果它们有帮助。否则,我将尝试agian。尝试获取非object属性时仍然返回相同的错误,然后尝试检查部门是否存在。dd$doc->department;