Laravel Artisan 命令实用笔记

一、常用Artisan命令

1. 创建模型

php artisan make:

命令 阐述 说明
$ make:model Models/User -fm 模型 类 -fm 参数代表同时生成
factory 工厂文件和
migration 数据库迁移文件
【单数】
$ make:controller UsersController 控制器 类 【复数 ~】
$ make:request Request 数据校验 Request 【单数】
$ make:request UserRequest 数据校验 类 【单数】
$ make:policy UserPolicy 授权策略 类 【单数】
$ make:seeder UsersSeeder seeder 类 【复数 ~】
$ make:job CloseOrder 任务 类 Laravel 延迟任务(Delayed Job)功能
【单数】
$ make:event OrderPaid 事件 event 【单数】
$ make:listener UpdateProductSoldCount --event=OrderPaid 监听器 listener 一般与事件类一起使用
$ make:notification OrderPaidNotification 通知 notify ~

创建数据库迁移文件
php artisan make:migration create_table_name_table --create=table_name
php artisan make:migration table_name_add_columns --table=table_name

2. db 类操作

php artisan db: 命令 阐述 说明
$ db:seed --class=UsersSeeder 填充数据库 单独执行某一个 seeder


3. 队列

启动队列处理器:

php artisan queue:work

二、自定义Artisan命令

$ php artisan make:command CalculateActiveUser --command=learnku:calculate-active-user

参数 --command 是指定 Artisan 调用的命令,一般情况下,我们推荐为命令加上命名空间。
app/Console/Commands/CalculateActiveUser.php

<?php

namespace App\Console\Commands;

use Illuminate\Console\Command;
use App\Models\User;

class CalculateActiveUser extends Command
{
    // 供我们调用命令
    protected $signature = 'learnku:calculate-active-user';

    // 命令的描述
    protected $description = '生成活跃用户';

    // 最终执行的方法
    public function handle(User $user)
    {
        // 在命令行打印一行信息
        $this->info("开始计算...");

        // todo....
        $user->xxxx();

        $this->info("成功生成!");
    }
}

三、为 storage 文件夹创建软链

HTTP 服务器指向的根目录是 public 目录,如果要想用户能通过浏览器访问 storage 目录下的文件,需要创建一个软链接,Laravel 内置了这个命令

$ php artisan storage:link

现在可以访问了: http://xxxx.com/storage/images/xxx.jpg

四、Laravel-admin 的使用

Laravel-admin 文档

Laravel-Admin 的控制器创建方式与普通的控制器创建方式不太一样,要用 admin:make 来创建:

$ php artisan admin:make UsersController --model=App\\Models\\User

其中 --model=App\\Models\\User 代表新创建的这个控制器是要对 App\Models\User 这个模型做增删改查。

生成的文件在:app/Admin/Controllers/UsersController.php

讨论数量: 0

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!