在我的系统中,当用户发送消息时,它会同时创建一个任务。任务描述是消息的主体。
任务和消息之间存在一对一的关系。
Task.php
class Task extends Model
{
public function message()
{
// one-to-one hasOne belongsTo
return $this->belongsTo('App\Message'); // CAN NEVER be null, it MUST have an associated message
}
当我在/api/tasks/{task}
的api.php端点获取任务时,它会调用TaskController@show
,这就是:
public function show(Task $task)
{
return $task->with([
'moments',
'message.body as descript' <<<<<<< psuedo-code
]);
}
我简化了这个例子。所以这不完全是我的真实案例,因为在上面我也可以回复这个消息。我真正的回报是:
public function show(Pet $pet)
{
return $pet->load([
'users',
'tasks' => function($query) {
$query->with([
'moments',
'upcomingAction',
'message.body as descript' <<<<<<<<<< pseudo-code
]);
}
]);
}
是否可以在返回的Task中添加额外的字段“descript”?
最诚挚的谢谢
答案 0 :(得分:1)
您需要将新属性附加到任务模型append in Laravel
protected $appends='descript';
public function getDescriptAttribute()
{
return 'something';
//you have access to other attributes via $this->attributes['name']
}