laravel笔记1

Laravel笔记

1、   安装laravel
安装composer  php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
配置中国镜像:composer config -g repo.packagist composer https://packagist.phpcomposer.com
composer create-project laravel/laravel=5.8.*(版本号)  项目名  --prefer-dist
(已经安生成APP_KEY)无需:php artisan key:generate

2、   修改文件
config/app.php  设置中国时区 :timezone=’ Asia/Shanghai’(RPC)
.evn 设置连接数据库
 / 运行环境名称         APP_ENV=local
// 调试模式,开发阶段启用,上线状态禁用。APP_DEBUG=true
// 敏感信息加密密钥,可使用 php artisan key:generate 重新生成。APP_KEY=

// 项目根目录 APP_URL=http://localhost

// 缓存驱动,默认使用文件作为缓存。 CACHE_DRIVER=file

// 回话驱动,默认使用文件存储SESSION。 SESSION_DRIVER=file

// 队列驱动,默认使用同步模式。QUEUE_DRIVER=sync

// Redis高性能key-value数据库,使用内存存储,用于数据持久化。

REDIS_HOST=127.0.0.1                  REDIS_PASSWORD=null                 REDIS_PORT=6379

// 数据库配置项

DB_HOST=127.0.0.1//数据库主机名

DB_PORT=3306//数据库端口

DB_DATABASE=homestead//数据库名称

DB_USERNAME=homestead//数据库登录账户

DB_PASSWORD=secret//数据库登录密码

3、配置全局方法 
         "autoload": {

                "classmap": [

               "database/seeds",

               "database/factories"

       ],

       "psr-4": {

               "App\\": "app/"

       }, //设置全局变量的文件

       "files": [

               "app/helpers.php"

       ]

 }

4、laravel中artisan 使用
         查看artisan 命令php artisan list

         查看某个帮助命令php artisan help make:model

查看laravel版本    php artisan --version

使用 PHP 内置的开发服务器启动应用php artisan serve

 

生成一个随机的 key,并自动更新到 app/config/app.php 的 key 键值对(刚安装好需要做这一步)    php artisan key:generate

开启Auth用户功能(开启后需要执行迁移才生效)        php artisan make:auth

开启维护模式和关闭维护模式(显示503)

php artisan down              php artisan up

        进入tinker工具      php artisan tinker

列出所有的路由     php artisan route:list

生成路由缓存以及移除缓存路由文件 php artisan route:cache         php artisan route:clear

功能篇

 

创建控制器php artisan make:controller StudentController

创建Rest风格资源控制器(带有index、create、store、edit、update、destroy、show方法)        php artisan make:controller PhotoController --resource

创建模型         php artisan make:model Student

创建新建表的迁移和修改表的迁移

php artisan make:migration create_users_table --create=students //创建students表

php artisan make:migration add_votes_to_users_table --table=students//给students表增加votes字段

 

执行迁移         php artisan migrate

 

创建模型的时候同时生成新建表的迁移

php artisan make:model Student -m

 

回滚上一次的迁移

php artisan migrate:rollback

 

回滚所有迁移

php artisan migrate:reset

 

创建填充

php artisan make:seeder StudentTableSeeder

 

执行单个填充

php artisan db:seed --class=StudentTableSeeder

 

执行所有填充

php artisan db:seed

 

创建中间件(app/Http/Middleware 下)

php artisan make:middleware Activity

 

创建队列(数据库)的表迁移(需要执行迁移才生效)

php artisan queue:table

 

创建队列类(app/jobs下):

php artisan make:job SendEmail

 

创建请求类(app/Http/Requests下)

php artisan make:request CreateArticleRequest

 

 

php artisan:显示详细的命令行帮助信息,同 php artisan list

php artisan –help:显示帮助命令的使用格式,同 php artisan help

php artisan –version:显示当前使用的 Laravel 版本

php artisan changes:列出当前版本相对于上一版本的主要变化

php artisan down:将站点设为维护状态

php artisan up:将站点设回可访问状态

php artisan optimize:优化应用程序性能,生成自动加载文件,且产生聚合编译文件 bootstrap/compiled.php

php artisan dump-autoload:重新生成框架的自动加载文件,相当于 optimize 的再操作

php artisan clear-compiled:清除编译生成的文件,相当于 optimize 的反操作

php artisan migrate:执行数据迁移

php artisan routes:列出当前应用全部的路由规则

php artisan serve:使用 PHP 内置的开发服务器启动应用 【要求 PHP 版本在 5.4 或以上】

php artisan tinker:进入与当前应用环境绑定的 REPL 环境,相当于 Rails 框架的 rails console 命令

php artisan workbench 组织名/包名:这将在应用根目录产生一个名为 workbench 的文件夹,然后按 组织名/包名 的形式生成一个符合 Composer 标准的包结构,并自动安装必要的依赖【需要首先完善好 app/config/workbench.php 文件的内容】

php artisan cache:clear:清除应用程序缓存

php artisan command:make 命令名:在 app/commands 目录下生成一个名为 命令名.php 的自定义命令文件

php artisan controller:make 控制器名:在 app/controllers 目录下生成一个名为 控制器名.php 的控制器文件

php artisan db:seed:对数据库填充种子数据,以用于测试

php artisan key:generate:生成一个随机的 key,并自动更新到 app/config/app.ph 的 key 键值对

php artisan migrate:install:初始化迁移数据表

php artisan migrate:make 迁移名:这将在 app/database/migrations 目录下生成一个名为 时间+迁移名.php 的数据迁移文件,并自动执行一次 php artisan dump-autoload 命令

php artisan migrate:refresh:重置并重新执行所有的数据迁移

php artisan migrate:reset:回滚所有的数据迁移

php artisan migrate:rollback:回滚最近一次数据迁移

php artisan session:table:生成一个用于 session 的数据迁移文件

5、安装验证码

         composer require mews/captcha

         1)注册providers (config/app.php)Mews\Captcha\CaptchaServiceProvider::class,

         2)注册aliases (config/app.php)'Captcha' => Mews\Captcha\Facades\Captcha::class,

         3)生成配置文件config/captcha.php(出现下图提示的话,根据红圈输入相关数字回车即可)       php artisan vendor:publish

         4)页面中使用验证码

                   <div class="row">

                        <div class="col-md-8">

                               <input type="text" class="form-control {{$errors->has('captcha')?'parsley-error':''}}" name="captcha" placeholder="captcha">

                          </div>

                        <div class="col-md-4">

                               <img src="{{captcha_src()}}" style="cursor: pointer" onclick="this.src='{{captcha_src()}}'+Math.random()">

                          </div>

                        @if($errors->has('captcha'))

                     <div class="col-md-12">

                            <p class="text-danger text-left"><strong>{{$errors->first('captcha')}}</strong></p>

                     </div>

                        @endif

                 </div>

 

 

6、自定义登录

         1)首先创建后台用户表

                  php artisan make:migration CreateAdminUserTable

         2)打开创建的数据库文件  (\database\migrations\刚生成的文件) 打开设置表字段              更改自己的字段信息

         3)填充数据

php artisan make:seeder  AdminUserTableSeeder

打开AdminUserTableSeeder.php

         public function run()

    {

        $data = [

            'name' => 'admin',

            'email' => '1065628795@qq.com',

            'password' => bcrypt('123456'),

            'ip' => '127.0.0.1'

        ];

        DB::table('admin_user')->insert($data);

    }

         4)在seeds/DatabaseSeeder.php注册一下

                  

public function run()

    {

        // $this->call(UsersTableSeeder::class);

        $this->call(AdminUserTableSeeder::class);

}

5)执行数据填充命令

         php artisan db:seed

6)自定义模型表。

1:假设登录数据表是admin。这里修改config目录下的auth.php

'guards' => [

        'web' => [

            'driver' => 'session',

            'provider' => 'users',

        ],

        'api' => [

            'driver' => 'token',

            'provider' => 'users',

        ],

        'admin' =>[       //新增

            'driver' => 'session',

            'provider' => 'admins',

        ],

    ],

'providers' => [

        'users' => [

            'driver' => 'eloquent',

            'model' => App\User::class,

        ],

        'admins' =>[     //新增

            'driver' =>'eloquent',

            'model' => Models\Admin::class, //模型的位置,这里我放在Models目录,laravel默认在app目录下,你可以放在任何目录

7)建立Admin模型

         <?php

namespace Models;

use Illuminate\Database\Eloquent\Model;

use Illuminate\Notifications\Notifiable;

use Illuminate\Foundation\Auth\User as Authenticatable;

class Admin extends Authenticatable //必须继承这个契约

{

                  use Notifiable;

             protected $table = 'admin'; //表

             protected $primaryKey = 'id'; //主键

public $timestamps = false;

protected $fillable = [

                 'username', 'password',

             ];

             rotected $hidden = [

                 password',

        ];

}

这个模型我们直接复制修改laravel默认的User.php模型即可。注意这里:class User extends Authenticatable,一定要extends Authenticatable

8)控制器调用认证

         //调用admin,我们在config/auth.php里的guards,新加的admin,上面第一步

        Auth::guard('admin')->attempt(['username' => $username, 'password' => $password]]);

        //Laravel默认调用user

        Auth::attempt(['username' => $username, 'password' => $password]]);

9)//认证后才可以访问

Route::group(['prefix'=>'admin','namespace'=>'Admin','middleware'=>'auth:admin'],function(){

         Route::get('/main','MainController@index');

});

 

7、laravel中默认表名后面多个S,可以在对应的model中添加

public $table=表名

 

 

8、获取执行sql语句

DB::enableQueryLog();

执行语句

dd(DB::getQueryLog());

posted @ 2020-08-19 09:23  华诺  阅读(135)  评论(0编辑  收藏  举报