laravel 笔记梳理
用了好久,系统性的整理一下笔记。方便查阅使用。
1.Mvc+route
2.
Route::get('article', function () {
return view('welcome');});
Route 是一个类;
访问类的静态方法是用 ::的形式;
那么get 就是Route类的一个静态方法;
get 静态方法可以传2个参数;
第一个参数现在是 / ;
我们知道 function 是用来定义函数的;
第二个参数就是一个闭包函数;
在这个闭包函数中 return 返回的东西就是我们请求到的内容;
这3行代码告诉我们3件事;
第一;
Route::后面可以跟一个请求方法;
当前代码中就是 get 请求;
get 和 post 在请求中是最基本最常用的方法;
很容易就 Lenovo 到;
如果写成 post 的话;
那就表示是接受一个 post 的请求;
第二:
/表示的是首页;
在 url 中就是域名后面的那个斜杠;
http://bjyblog.test/
- url 就应该是 http://bjyblog.test/article ;
- 自动生成控制器
php artisan make:controller ArticleController --resource
- 路由组
Route::prefix('article')->group(function () {
Route::get('index', 'ArticleController@index');
Route::get('create', 'ArticleController@create');
Route::post('store', 'ArticleController@store');});
- 路由组嵌套
Route::prefix('admin')->namespace('Admin')->group(function () {
Route::prefix('article')->group(function () {
Route::get('index', 'ArticleController@index');
Route::get('create', 'ArticleController@create');
Route::post('store', 'ArticleController@store');
});
});
- 路由约束 公用约束(app/Providers/RouteServiceProvider.php)
Route::prefix('article')->group(function () {
// ...
Route::get('edit/{id}/{name}', 'ArticleController@edit');});
- 设置中国时区
打开 config/app.php 文件;
把 timezone 改为 PRC;
laravel 默认的时区是 UTC ;
中国的时区是 PRC ;
如果没有改的话;
那数据库存自动生成的时间会和我们的实际相差8个小时;
8:数据库操作
1.回退迁移
php artisan migrate:rollback
2.创建迁移
php artisan make:migration create_articles_table
- 开始迁移
php artisan migrate
- sql 使用
第二个和第三个分别是关联的字段;
谁在前谁在后无所谓哈;
->join('users as u', 'u.id', 'articles.user_id') ;
如果使用了 join 那 where 就同样要指明表了;
->whereIn('u.id', [1, 2, 3]) ;
联系到 sql 还会有 left join 和 right join ;
使用驼峰命名法即可;
->leftJoin('users as u', 'u.id', 'articles.user_id') ;
分组和排序的则需要在关键字后面加个 by;
->groupBy('u.id');
orderBy 还可以指定第二个参数用于指定正序还是倒序;
orderBy('created_at', 'desc') ;
如果只想取指定字段的可以使用 select ;
->select('u.id', 'u.name', 'u.email');
相应的最后的 ->get() 还可以替换为 first、count、sum、pluck、value;
完整demo
$data = DB::table('articles')
->select('category_id', 'title', 'content')
->where('title', '<>', '文章1')
->whereIn('id', [1, 2, 3])
->groupBy('category_id')
->orderBy('id', 'desc')
->limit(1)
->get();
dump($data);