Laravel 5 只有第一个结果
我对拉威尔有点陌生,所以我希望这个问题足够清楚 我有一个包含用户的表和另一个包含任务的表 在我的用户模型中,我有以下内容:Laravel 5 只有第一个结果,laravel-5,eloquent,Laravel 5,Eloquent,我对拉威尔有点陌生,所以我希望这个问题足够清楚 我有一个包含用户的表和另一个包含任务的表 在我的用户模型中,我有以下内容: public function tasks() { return $this->hasMany('App\User' , 'id'); } 我可以执行以下操作从数据库中检索单个用户 $users = \App\User::find(1)->tasks()->paginate(); 但我明白了 {"current_page":1,"data":
public function tasks() {
return $this->hasMany('App\User' , 'id');
}
我可以执行以下操作从数据库中检索单个用户
$users = \App\User::find(1)->tasks()->paginate();
但我明白了
{"current_page":1,"data":[{"id":1,"name":"Ed","email":"mail@weqweqeq.com","email_verified_at":null,"created_at":null,"updated_at":null,"tasks":[{"id":1,"name":"Ed","email":"mail@weqweqeq.com","email_verified_at":null,"created_at":null,"updated_at":null}]},{"id":2,"name":"Alyse","email":"mail@rxygewe.com","email_verified_at":null,"created_at":null,"updated_at":null,"tasks":[]}],"first_page_url":"http:\/\/127.0.0.1:8000?page=1","from":1,"last_page":1,"last_page_url":"http:\/\/127.0.0.1:8000?page=1","next_page_url":null,"path":"http:\/\/127.0.0.1:8000","per_page":15,"prev_page_url":null,"to":2,"total":2}
我也试过:
$users = \App\User::with(['tasks' => function($q) {
$q->first();
}])->paginate();
但是tasks属性为空
我的问题是如何让所有用户,但只有第一个任务和分页才能工作
任务表
1 id(Primary) bigint(20) UNSIGNED No None AUTO_INCREMENT
2 created_at timestamp Yes NULL
3 updated_at timestamp Yes NULL
4 task_name varchar(255) utf8mb4_unicode_ci No None
5 user_id(Index) bigint(20) UNSIGNED No None
您的模型关系定义不正确。您已将一个用户与多个用户关联。
公共功能任务(){
//用户($this)有许多任务
返回$this->hasMany('App\Task');
}
另外,使用->first()
时要小心,因为除非另有规定,否则不能保证顺序
$users=\App\User::with(['tasks'=>函数($q){
//获取最近创建的任务
$q->latest()->first();
}])->分页();
您的模型关系定义不正确。您已将一个用户与多个用户关联。公共功能任务(){
//用户($this)有许多任务
返回$this->hasMany('App\Task');
}
另外,使用->first()
时要小心,因为除非另有规定,否则不能保证顺序
$users=\App\User::with(['tasks'=>函数($q){
//获取最近创建的任务
$q->latest()->first();
}])->分页();