分页: User::paginate(10); (对应的blade : <div class="mt-3">{!! $users->render() !!}</div>)
测试数据填充:
php artisan make:factory XXXXFactory 然后写完返回数据结构注意 factory->define(Models ::class, ........) { 把 Models 替换对应的模型名称, 否则会报错 InvalidArgumentException : Unable to locate factory with name
2. php artisan make:seeder XXXXTableSeeder 然后写完run()方法
3. database/seeds/DatabaseSeeder.php 指定调用微博数据填充文件
$this->call(XXXXTableSeeder::class);
4. php artisan migrate:refresh --seed 对数据库进行重置和填充
// 单独指定XXXXTableSeeder数据填充 : php artisan db:seed --class=XXXXTableSeeder
导向至上一次发出请求的页面 : return redirect()->back();
Eloquent 模型 让关联的管理和处理变得更加简单,同时也支持以下几种类型的关联:
一对一一对多多对多远层一对多多态关联多态多对多关联「一对多」模型对应关系:
// 在微博模型中, 指明一条微博属于一个用户
class Status extends Model { public function user() { return $this->belongsTo(User::class); } }//在用户模型中,指明一个用户拥有多条微博
class User extends Authenticatable { . . . public function statuses() { return $this->hasMany(Status::class); } public function feed() { return $this->statuses()->orderBy('created_at', 'desc'); } }取出一个用户的所有微博并且分页: $user->statuses()->orderBy('created_at', 'desc')->paginate(10);
或者在用户模型中定义feed方法,来获取用户的所有微博(参照上列代码)
添加微博:Auth::user()->statuses()->create(['content' => $request['content']]); //微博模型中定义 fillable 属性 protected $fillable = ['content']; 否则报错 Add [content] to fillable property to allow mass assignment on
「多对多关系」模型对应关系:
在 Laravel 中我们使用 belongsToMany 来关联模型之间的多对多关系
class User extends Authenticatable{ .... // belongsToMany 方法的第三个参数 user_id 是定义在关联中的模型外键名,而第四个参数 follower_id 则是要合并的模型外键名 //一个用户能够拥有多个粉丝 public function followers(){ return $this->belongsToMany(User::class, 'followers', 'user_id', 'follower_id'); } //一个用户能够关注多少人 public function followings(){ return $this->belongsToMany(User::class, 'followers', 'follower_id', 'user_id'); } //添加关注 public function follow($user_ids){ if(!is_array($user_ids)){ $user_ids = compact($user_ids); } return $this->followings()->sync($user_ids, false); } //取消关注 public function unfollow($user_ids){ if(!is_array($user_ids)){ $user_ids = compact($user_ids); } return $this->followings()->detach($user_ids); } //是否关注 public function isFollowing($user_id){ return $this->followings->contains($user_id); } }
