Laravel 开发过程
1:安装
2:配置.env 数据库信息(APP_DEBUG=true),
配置/config/app.php 的timezone=PRC,配置调试 ‘debug’ => env(‘APP_DEBUG’, true),如果没有.env 文件,就去找app.php文件
3:创建模型 php artisan make:model Tag -m
,-m代表的是创建迁移文件
4:在迁移文件里面,创建表字段内容
5:创建没有模型的迁移文件 php artisan make:migration create_post_tag
6:设置默认字符集
/config/database.php
'charset' => 'utf8',
'collation' => 'utf8_general_ci',
7:php artisan migrate 创建表
8:laravel 5.4 改变了默认的数据库字符集,现在utf8mb4包括存储emojis支持。如果你运行MySQL v5.7.7或者更高版本,则不需要做任何事情。
否则会报错
[Illuminate\Database\QueryException]SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter table users add unique users_email_unique(email))
[PDOException]SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes
修改文件:/app/Providers/AppServiceProvider.phpuse Illuminate\Support\Facades\Schema;
boot 方法添加:Schema::defaultStringLength(191);
9:添加路由访问网站
10:添加控制器
php artisan make:controller AdminController
(1):Laravel 5.4默认创建的是 空 控制器,
(2):如果想变成旧版本,生成方法,需要加 ----resource
(3):旧版本(5.1之前)默认是生成方法的,加--plain是空的控制器
11:添加模版,将模版的css,js,图片这些放在public下,文件夹的名字不能跟我们的路由同名
12:模版路径调整,建议使用asset函数进行路径调整(asset针对静态,url比如是跳转的链接)
13:修改错误页面 /resources/views/errors/ 403和503页面
14:控制器先做添加
15:做列表,php artisan make:seeder UserSeeder
其它
1 : 公共方法 /app/common/function.php
要在composer.json 中设置
“autoload”:{
“files”:[
“app/common/function.php”
]
}
通过命令
composer dump-auto 来重新生成autoload_files.php 文件
2 : 获取最后一条sql
\DB::connection()->enableQueryLog(); // 开启查询日志
\DB::table(‘xxx’); // 要查看的sql
$queries = \DB::getQueryLog(); // 获取查询日志
print_r($queries); // 即可查看执行的sql,传入的参数等等
3:auth
路由设置在
xsblog\vendor\laravel\framework\src\Illuminate\Routing\Router.php 下的auth方法里
4:最近在使用 Zizaco\Entrust 这个权限包报错
This cache store does not support tagging.
CACHE_DRIVER=array 缓存改成array即可
5:队列
运行: php artisan queue:listen 或 php artisan queue:work
6:原生sql写法
DB::table( DB::raw('user_redpackets ur, user_points up, user_cards uc') )
->select(DB::raw('IFNULL (ur.amount, 0) ur_amount'), DB::raw('IFNULL (up.amount, 0) up_amount'))
->where( DB::raw('ur.code'), '=', '3dK3Ly80H7o')
->take(1)
->toSql();
'email' => [
required',
'email',
Rule::unique('accounts')->where(function ($query){
$query->where('mchId', getMchId());
}),
],
'mobile' => [
'required',
'min:11',
Rule::unique('accounts')->where(function ($query){
$query->where('mchId', getMchId());
}),
],