gpt4 book ai didi

php - 拉维尔 5.4 : Cannot retrieve data from a relationship

转载 作者:可可西里 更新时间:2023-11-01 09:00:25 26 4
gpt4 key购买 nike

我试图通过将每个名称存储在两个 UNION 表(Accesses 和 Reports)的数组中来显示每张票证的受让人名称(来自 Users 表的外键),但它给了我这个错误。错误异常未定义的属性:stdClass::$assignee。

//HomeController
$accesses = DB::table('accesses')
->select(array('id', 'fullname','emp_id','shift','state','resolved_at', 'closed_at','assigned_to'))
->where('state','=','Assigned');

$all = DB::table('reports')
->select(array('id', 'fullname','emp_id','shift','state','resolved_at', 'closed_at','assigned_to'))
->union($accesses)
->where('state', '=', 'Assigned')
->get();

$names[] = array();

foreach ($all as $one)//store in array to display in a chart
{
$names[] = $one->assignee->name; //error here
}




//Report Model
public function assignee()
{
return $this->belongsTo(User::class, 'assigned_to');
}

//Access Model
public function assignee()
{
return $this->belongsTo(User::class, 'assigned_to');
}

//Report Migration
public function up()
{
Schema::create('reports', function (Blueprint $table) {
$table->increments('id');
$table->integer('user_id')->nullable();
$table->string('fullname');
$table->string('emp_id');
$table->string('shift');
$table->longText('report');
$table->string('status')->default('Pending'); //Pending, Approved
$table->string('state')->default('Open'); //Open, Assigned, Resolved, Closed
$table->date('resolved_at')->nullable();
$table->date('closed_at')->nullable();
$table->integer('assigned_to')->nullable();
$table->longText('action')->nullable();
$table->timestamps();
});
}

//Access Migration
public function up()
{
Schema::create('accesses', function (Blueprint $table) {
$table->increments('id');
$table->integer('user_id')->nullable();
$table->string('fullname');
$table->string('emp_id');
$table->string('shift');
$table->string('request');
$table->longText('note')->nullable();
$table->string('status')->default('Pending'); //Pending, Approved
$table->string('state')->default('Open'); //Open, Assigned, Resolved, Closed
$table->date('resolved_at')->nullable();
$table->date('closed_at')->nullable();
$table->integer('assigned_to')->nullable();
$table->longText('action')->nullable();
$table->timestamps();
});
}

It gives me this error

The results should be like this

最佳答案

您应该使用 merge 集合方法:

$accesses = Access::select(array('id', 'fullname','emp_id','shift','state','resolved_at', 'closed_at','assigned_to'))
->where('state','=','Assigned')
->get();

$reports = Report::select(array('id', 'fullname','emp_id','shift','state','resolved_at', 'closed_at','assigned_to'))
->where('state', '=', 'Assigned')
->get();

$all = $accesses->merge($reports);

关于php - 拉维尔 5.4 : Cannot retrieve data from a relationship,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45406179/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com