创建laravel项目
composer create-project --prefer-dist laravel/laravel driver 6.0.0
启动laravel服务器
php artisan serve
为其他的环境设置变量
php .\artisan key:generate --env=test
laravel db 查询 get时返回的对象为 obj 转为array 的方法
Fetch 模式#
Laravel 不再支持在配置文件中定制 PDO 「fetch mode」 的功能。取而代之,固定使用 PDO::FETCH_OBJ 。
如果你仍然想要为你的应用程序自定义提取模式,
你可以监听新的 Illuminate\Database\Events\StatementPrepared 事件:
Event::listen(StatementPrepared::class, function ($event) {
$event->statement->setFetchMode(\PDO::FETCH_ASSOC); //设置成关联数组格式
jwt token laravel using
laravel 具有辅助函数 app_path base_path 和 public_path 可以方便的进行路径的引用
return response()->json($result)->setEncodingOptions(JSON_UNESCAPED_UNICODE);
//设置json返回类型的额外参数
phpstorm 配置项缺少的错误修正
ext-json:"*"
laravel 配置predis后设置ide自动提示
/** @var $redis \Predis\Client */
$redis = Redis::connection();
laravel .htaccess
Options +FollowSymLinks -Indexes
RewriteEngine On
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
设置laravel 不同环境下读取不同的配置文件的方法 ,在 public/index.php 中加入两行
$app = require_once __DIR__.'/../bootstrap/app.php';
$app->loadEnvironmentFrom('.env.online');# .env配置多环境,只此一行
在Providers/AppServiceProvider中的register方法判断环境加载所需服务!
if ($this->app->environment() !== 'online') {
$this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
}
Route::get('userCreated/id/{id}/name/{name}',function ($id,$name){
return $id.$name; //这种一般是在直接返回对应的查询并且不需要组装时才使用
});
这样的使用为闭包形式
提高代码编写效率 (https://learnku.com/articles/10172/laravel-super-good-code-prompt-tool-laravel-ide-helper)
composer require barryvdh/laravel-ide-helper 2.7.0
(laravel 6.0.x ) 可使用该版本 5.5以下需要注册服务提供者
在 「config/app.php」的 「providers」数组中加入
Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class
php artisan ide-helper:generate - 为 Facades 生成注释
php artisan ide-helper:models - 为数据模型生成注释
php artisan ide-helper:meta - 生成 PhpStorm Meta file
laravel 单条数据查询使用first
$name=User::whereName('马存彪')->first()->toArray();
laravel 上传文件时建立链接
php artisan storage:link
laravel 模板中使用vue的方法 vue变量用@{{}}引入
发布某个应用的配置文件
$ php artisan vendor:publish --provider="Yansongda\LaravelPay\PayServiceProvide
r" --tag=laravel-pay
laravel 数据表迁移
创建表
php artisan migrate --path=/database/migrations/2021_06_19_100648_create_fc_own_test_table.php //迁移单个文件
php artisan migrate //迁移所有文件
//执行过一次迁移之后 想再次执行 必须创建rollback回滚操作
//回滚单个文件(表)
>php artisan migrate:rollback --path=/database/migrations/2021_06_19_100648_create_fc_own_test_table.php
//回滚所有文件
>php artisan migrate:rollback
laravel 在执行完一个表的迁移后 如果需要对这个进行更改的话 就需要重写个迁移文件 再执行
千万不能在原来的迁移文件中修改并执行(此操作会删除指定的数据表的数据)
php artisan migrate --path=database\migrations\2021_06_19_112719_alter_fc_own_test_add_remark.php //单独执行某个表文件的操作
* * * * * /usr/local/bin/php /usr/local/var/www/projectName/artisan schedule:run >> /dev/null 2>&1
laravel的定时任务是放在 app/console/Kanel 中进行的
10 16:18 下单的 16:28
这时候就可以写个这样的操作 然后每x分钟执行一次
laravel 验证器 的使用
return [
//
'info'=>'required|numeric|min:6', //如果想让字段值被作为数字验证,加上numeric 或 Integer 属性 否则会作为长度验证
'message'=>'required|max:255',
];
/**
laravel api 在使用了FormRequest后 会产生自定义的跳转 需要重写fromRequest的
failedValidation 方法 实现对消息体的自定义
**/
namespace App\Http\Requests;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Http\Exceptions\HttpResponseException;
use function App\Helper\outPutJson;
//自定义返回的错误信息体
class BaseRequest extends FormRequest
{
public function failedValidation(Validator $validator)
{
foreach ($validator->errors()->messages() as $error){
throw new HttpResponseException($this->error($error[0]));
}
}
public function error($error)
{
return outPutJson('', 402, $error);
}
}