我正在研究事件留言板。我可以按每个用户自己的帖子显示表数据。但是我也想显示所有帖子。我把它写为$ tasksall,但是没有用。有人可以教我怎么了吗?
AController.php
public function index()
{
$tasks = Auth::user()
->tasks()
->orderBy('is_complete')
->orderByDesc('created_at')
->paginate(5);
$tasksall =
->tasks()
->orderBy('is_complete')
->orderByDesc('created_at')
->paginate(5);
return view('tasks', [
'tasks' => $tasks, 'tasksall' => $tasksall
]);
}
Task.php (模型)
class Task extends Model
{
protected $casts = [
'is_complete' => 'boolean',
];
protected $fillable = [
'title',
'is_complete',
];
public function user()
{
return $this->belongsTo(User::class);
}
}
AController.php 我添加了这段代码
public function person()
{
return $this->belongsTo('App\Models\Task');
}
public function getData()
{
return $this->id . ':'/ $this->person->name.')';
}
index.blade.php 我添加了这段代码
{{ $task2->getData() }}
答案 0 :(得分:1)
您只需编写一个查询即可使用雄辩地获取所有任务来获取所有任务。
$tasksall = Task::all();
看看this链接。
对于您来说,我也认为问题是您正在从User
模型中获取任务,因此您$ task将只包含与特定用户相关的任务,因为您与belongsTo
具有任务关系用户。
根据您的情况,从name
中获得User
中的task
。
//任务模型
class Task {
public function user()
{
return $this->belongsTo(User::class, 'user_id');
}
}
然后您可以在控制器中像这样查询。
$task = Task::find($id);
$name = $task->user->name;