Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel口才好的关系不起作用_Php_Sql_Database_Laravel_Eloquent - Fatal编程技术网

Php Laravel口才好的关系不起作用

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

我试图用雄辩的belongsTo在两个表之间创建一个关系,但它似乎不起作用

这两个表是文档和部门,每个文档属于一个部门

文件

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;