美文网首页
laravel温故

laravel温故

作者: 月圆星繁 | 来源:发表于2019-12-13 23:04 被阅读0次

    数据库

    快速入门
    查询构造器
    分页
    数据库迁移
    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

    后面写的都没有发布上去,真的是,代码片段都不算字数的吗?

    相关文章

      网友评论

          本文标题:laravel温故

          本文链接:https://www.haomeiwen.com/subject/qvoyyctx.html