laravel学习笔记

创建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);

    }

}

你可能感兴趣的:(laravel学习笔记)