数据库
快速入门
查询构造器
分页
数据库迁移
laravel数据填充
php artisan make:seeder UsersTableSeeder //放置在database/seeds 目录下
composer dump-autoload //seeder类编写完成后,使用命令重新生成composer的自动加载器
php artisan db:seed
php artisan db:seed --class=UsersTableSeeder //--class指定特定的类执行
php artisan migrate:refresh --seed //回滚并重新运行所有迁移。
laravel的Redis使用
使用redis需composer安装predis/predis
扩展包:
composer require predis/predis
redis的配置config/database.php中。
集群配置在redis配置文件中使用clusters键来定义集群。
调用redis的facade方法来与redis交互。
Redis::get('user:profile',id);
Redis::set('name','honda');
Redis::lrange('names',5,10); //列表
Redis::command('lrange',['name',5,10]); //command第一个参数为命令名称,并将值的数组作为第二个参数
$redis = Redis::connection(); //多个redis连接
$redis = Redis::connection('my-connection');
//管道命令 pipeline接收一个带有redis实例的闭包,将所有命令发生给这个redis实例,它们都会一次执行完。
Redis::pipeline(function($pipe){
for($i = 0; $i <100; $i++){
$pipe->set("key:$i",$i);
}
});
//发布订阅 publish 与 subscribe
频道
Redis::subscribe(['test-channel'], function($message){
echo $message;
})
// 发布消息到频道
Route::get('publish', function() {
Redis::publish('test-channel', json_encode(['foo'=>'bar']));
});
Eloquent ORM
每个数据库表对都有一个对应的【模型】用来与该表交互。
定义一个Eloquent模型:
use Illuminate\Database\Eloquent\Model;
class User extends Model {
//
}
命令创建模型:
php artisan make:model User
如果要在生产模型时生产数据库迁移,可以使用 --migration 或 -m :
php artisan make:model User --migration
php artisan make:model User -m
模型约定:
protected $table = 'tableName'; //指定自定义数据表
protected $primarKey; //主键字段
protected $timestamps = false; // 不维护表中的created_at 和 updated_at
// 自定义用于存储时间戳的字段名
const CREATED_AT = 'creation_date';
const UPDATED_AT = 'last_update';
// 数据库连接
protected $connection = 'connection-name';
// 保护属性
// $fillable 可以作为设置被批量赋值的属性【白名单】。
protected $guarded = ['price']; // 除了price 所有的属性都可以被批量赋值
软删除 use SoftDeletes
//在模型上设置一个 deleted_at 属性并添加到数据库中,非空则代表已被软删除了,在查询结果中不会出现。
protected $dates = ['deleted_at'];
// 使用 withTrashed 方法强制软删除的模型出现在结果集中。
$users = App\User::withTrashed()->where('user_id', 1)->get();
// 只检索软删除的模型
$users = App\User::onlyTrashed()->where('user_id','>',1)->get();
// 恢复被软删除的模型
$user->restore();
// 永久删除模型
$user->forceDelete(); //删除单个模型实例
$user->history()->forceDelete(); // 强制删除所有相关模型
模型关联
- 一对一
- 一对多
- 多对多
- 远层一对多
- 多态关联
- 多对多多态关联
wwww
后面写的都没有发布上去,真的是,代码片段都不算字数的吗?
网友评论