Laravel创建步骤
文件夹名称
- app/Http/Controllers 控制器文件夹
- app/Models 模型文件夹(命令生成的)
- config 配置文件
- database 数据库迁移
- public 公共文件
- resources 放CSS、JS和视图文件(视图文件在resources/views文件中)
- routes 路由文件(重点)
- storage 日志、框架文件
- tests 测试文件
- vendor 第三方库文件
- .env 配置文件
二、命令
-
生成 laravel 包
composer create-project --prefer-dist laravel/laravel blog
-
启动服务器
php artisan serve
启动服务器命令 启动后是直接访问public文件中的内容,其他文件的内容不可直接访问
-
创建数据库迁移文件(在 database/migrations/下)
php artisan make:migration create_posts_table
会创建一个数据表文件,直接在文件里写数据表创建命令,其中里面的代码
public function up(){}
中写创建命令;public function down(){}
是删除方法 具体 mysql 语句 查看laravel中文文档 :数据库下的数据库迁移 -
创建数据库文件模板
php artisan migrate:install
-
执行数据库迁移文件
php artisan migrate
-
创建模型(在 app/Models/下)
php artisan make:model Post
通过模型操作数据库,创建出来的这个Post什么也不用写,到时候直接调用就OK
-
创建控制器
php artisan make:controller PostController
-
创建工厂文件夹(database/factories/下会创建PostFactory文件)
php artisan make:factory PostFactory
-
运行文件 (laravel中文文档中 数据库-数据填充-编写 Seeders)
php artisan db:seed
-
图片文件存储,创建符号链接
php artisan storage:link
此命令会在 public 目录下创建名为 storage 的目录 ,并创建 public/storage 到 storage/app/public 目录的符号链接,通过 storage/ 文件名称实际访问的就是 storage/app/public 下的同名文件
三、操作步骤
-
配置文件(配置.env文件)配置数据库
13 DB_DATABASE=数据库名; 14 DB_USERNAME=用户名; 15 DB_PASSWORD=密码;
-
配置路由
Route::get('/',function(){ // ::双冒号是调静态方法 调的是Route里的方法是get(方法有两个参数,一个是斜杠,一个是function函数) return view('welcome'); }) // 当用户访问/斜杠的时候会被路由捕捉到,通过view方法访问resources/views/welcome.blade.php的源码,发回来渲染用户就能看到
所有对于服务器资源的请求,守线都会到达路由
-
创建数据库(可以用Navicat直接创建,也可以用命令)
-
创建模型(用命令创建完成后,里面不用写任何东西)
-
在web.php 路由文件下 引入创建的模型文件
use \App\models\Post;
-
创建index.blade.php文件 手动创建的(文件位置:resources/views/post/下)
@foreach($posts as $v) { { $v->title}} @endforeach
具体内容在中文文档:前端开发下的 Blade 模板
-
更改路由文件,让路由文件变干净(控制器路由)
// 当匹配到某个路由时,指定某个控制器下的方法去执行 Route::get('/posts','\App\Http\Controllers\PostController@index'); // /posts与php文件中的action="/posts"一致 @index 是调用的控制器中的类名
-
使用命令创建控制器(app/Http/Controllers/文件夹下)创建了个PostController.php文件
use \App\Models\Post; // 把路由文件中的拿了过来,让路由文件变干净 // index 是类名 // 用于展示文章列表 public function index(){ $posts = Post::orderby('id','desc')->get(); return view('post/index',['posts'=>$posts]); } // view 可以简单的返回视图或向视图传递数据 // 用于删除内容 public function del(){ $id=$_GET['id']; Post::where('id',$id)->delete()