Laravel Artisan常用命令


  1. Controller 控制器

    // 创建一个控制器
    php artisan make:controller XXXController
    // 创建Rest风格资源控制器
    php artisan make:controller PhotoController --resource
    // 指定创建位置 在app目录下创建TestController
    php artisan make:controller App\TestController
    

  2. Model

    // 指定路径创建
    php artisan make:Model App\\Models\\User(linux or macOs 加上转义符)
    

  3. Migration 数据迁移

    // 数据迁移
    php artisan migrate
    // 创建迁移
    php artisan make:migration create_users_table
    // 指定路径
    php artisan make:migration --path=app\providers create_users_table
    // 一次性创建
    // 下述命令会做两件事情:
    // 在 app 目录下创建模型类 App\Post
    // 创建用于创建 posts 表的迁移,该迁移文件位于 database/migrations 目录下。
    php artisan make:model --migration Post
    

  4. Seeder 数据填充

    // 创建要填充的数据类
    php artisan make:seeder UsersTableSeeder
    // 数据填充(全部表)
    php artisan db:seed
    // 指定要填充的表
    php artisan db:seed --class=UsersTableSeeder
    

  5. Middleware 中间件

    php artisan make:middleware XXX
    

  6. Route 路由

    // 查看所有路由
    php artisan route:list
    

  7. Request请求,主要用于表单验证

    php artisan make:request TagCreateRequest
    

    创建的类存放在 app/Http/Requests 目录下

    <?php 
    
    namespace App\Http\Requests;
    
    use App\Http\Requests\Request;
    
    class TagCreateRequest extends Request
    {
    
        /**
         * Determine if the user is authorized to make this request.
         *
         * @return bool
         */
        public function authorize()
        {
            return true;
        }
    
        /**
         * Get the validation rules that apply to the request.
         *
         * @return array
         */ 
        public function rules()
        {
            return [
                'tag' => 'required|unique:tags,tag',
                'title' => 'required',
                'subtitle' => 'required',
                'layout' => 'required',
            ];
        }
    }
    

    使用时只需在对应的Controller方法里引入

    // 注意这里使用的是TagCreateRequest
    public function store(TagCreateRequest $request)
    {
        $tag = new Tag();
        foreach (array_keys($this->fields) as $field) {
            $tag->$field = $request->get($field);
        }
        $tag->save();
        return redirect('/admin/tag')
            ->withSuccess("The tag '$tag->tag' was created.");
    }
    

  8. 创建artisan命令行(laravel5.*版本)

    // 以下命令生成文件 app/Console/Commands/TopicMakeExcerptCommand.php
    
    php artisan make:console TopicMakeExcerptCommand --command=topics:excerpt123
    
    //在 app/Console/Kernel.php 文件里面, 添加以下
    protected $commands = [
            \App\Console\Commands\TopicMakeExcerptCommand::class,
        ];
    //激活artisan命令行。12345
    //在生成的TopicMakeExcerptCommand.php 文件, 修改以下区域
    <?php
    
    namespace App\Console\Commands;
    
    use Illuminate\Console\Command;
    
    class TopicMakeExcerptCommand extends Command
    {
        /**
         * 1. 这里是命令行调用的名字, 如这里的: `topics:excerpt`, 
         * 命令行调用的时候就是 `php artisan topics:excerpt`
         *
         * @var string
         */
        protected $signature = 'topics:excerpt';
    
        /**
         * 2. 这里填写命令行的描述, 当执行 `php artisan` 时
         *   可以看得见.
         *
         * @var string
         */
        protected $description = '这里修改为命令行的描述';
    
        /**
         * Create a new command instance.
         *
         * @return void
         */
        public function __construct()
        {
            parent::__construct();
        }
    
        /**
         * 3. 这里是放要执行的代码, 如在我这个例子里面,
         *   生成摘要, 并保持.
         *
         * @return mixed
         */
        public function handle()
        {
            $topics = Topic::all();
            $transfer_count = 0;
    
            foreach ($topics as $topic) {
              if (empty($topic->excerpt))
              {
                  $topic->excerpt = Topic::makeExcerpt($topic->body);
                  $topic->save();
                  $transfer_count++;
              }
            }
            $this->info("Transfer old data count: " . $transfer_count);
            $this->info("It's Done, have a good day.");
        }
    }
    
    // 命令行调用
    php artisan topics:excerpt 
    

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 129,438评论 18 137
  • 先说几句废话,调和气氛。事情的起由来自客户需求频繁变更,伟大的师傅决定横刀立马的改革使用新的框架(created ...
    wsdadan阅读 2,758评论 0 12
  • 校园失物招领平台开发 ——基于laravel框架构建最小内容管理系统 摘要 ​ 针对目前大学校园人口密度大、人群活...
    蓝莲花xzsky阅读 5,529评论 8 55
  • 行香子 花色清明,云远山高。春欲归,烟水迢迢。 慢将竹老,迟又风飘。只人长醉,思长留,景长消。 念山山去,折花花未...
    槚生阅读 192评论 2 13
  • 好想妈妈 想得一直在哭
    卓别林来也阅读 135评论 0 0
  • 一位男士,在冰天雪地的露天广场上双眼含泪,啃着硬邦邦的面包,他或许是被老板骂了,或许是丢了工作,或许是为自己没有能...
    九月sep99阅读 1,091评论 3 1
  • 世间万物,有阴有阳,而只有了解阴阳,才能知道如何跳出阴阳。 阴阳,阴气阳气,多数人或事物都喜欢阳气,不喜阴气,为何...
    绫波阅读 238评论 0 0