-
Controller 控制器
// 创建一个控制器 php artisan make:controller XXXController // 创建Rest风格资源控制器 php artisan make:controller PhotoController --resource // 指定创建位置 在app目录下创建TestController php artisan make:controller App\TestController
-
Model
// 指定路径创建 php artisan make:Model App\\Models\\User(linux or macOs 加上转义符)
-
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
-
Seeder 数据填充
// 创建要填充的数据类 php artisan make:seeder UsersTableSeeder // 数据填充(全部表) php artisan db:seed // 指定要填充的表 php artisan db:seed --class=UsersTableSeeder
-
Middleware 中间件
php artisan make:middleware XXX
-
Route 路由
// 查看所有路由 php artisan route:list
-
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."); }
-
创建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
网友评论