基础学习总结命令

基础学习总结命令

1、开启虚拟机,并登陆ssh

> cd ~/Homestead && vagrant up
> vagrant ssh

2、进入项目目录、创建一个命名项目     

$ cd ~/code
$ composer create-project laravel/laravel 项目名 --prefer-dist "5.7.*"

3、修改hosts


4、配置虚拟主机host:

路径:C:/Windows/System32/Drivers/etc/hosts

//Homestead的ip是192.168.10.10
192.168.10.10   项目.test

5、新增站点文件  

路径:~/Homestead/Homestead.yaml

sites:
    - map: 项目.test   
      to: /home/vagrant/Code/项目/public  
databases:
    - 项目数据库名 #

6、重启虚拟机 

> cd ~/Homestead && vagrant provision && vagrant reload

7、项目根目录修改 .env文件

DB_DATABASE=项目数据库名   //数据库名称

8、设置git

$ cd ~/code/项目
$ git init          //初始化git
$ git add -A       //添加git
$ git commit -m "Initial commit"
$ git commit -m "first commit"
$ git remote add origin git@gitee.com:yihank/test.git
$ git push -u origin master

9、统一代码风格:

项目根目录 .editorconfig

root = true

[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
indent_style = space
indent_size = 4
trim_trailing_whitespace = true

[*.md]
trim_trailing_whitespace = false

[*.yml]
indent_size = 2

[*.{js,html,blade.php,css,scss}]
indent_style = space
indent_size = 2

10、git 提交

11、准备开发目标,创建git 分支

$ git checkout master
$ git checkout -b 分支名称

其他git分支命令参考

$ git merge 分支名称   //合并分支示例:
$ git branch -d 分支名称  //删除分支示例:

12、移除无用视图

$ rm resources/views/welcome.blade.php

13、配置路由

routes/web.php

Route::get('/','StaticPagesController@home')->name('home');

14、创建控制器

$ php artisan make:controller 控制器名称Controller

15、显示视图

view('控制器名称/help');//驼峰用下划线 _ 分割

16、视图文件

名称.blade.php   (视图继承)

<!DOCTYPE html><html>
  <head>
    <title>@yield('title', '标题') - 拼接标题</title>
  </head>
  <body>
    @yield('content')  
  </body>
</html>

//其他.blade.php 视图文件继承 使用
@extends('layouts.名称')
@section('title', '自定义的标题名')
@section('content')  
    <h1>主页</h1>
@stop

Artisan 命令

命令说明
php artisan key:generate生成 App Key
php artisan make:controller生成控制器
php artisan make:model生成模型
php artisan make:policy生成授权策略
php artisan make:seeder生成 Seeder 文件
php artisan migrate执行迁移
php artisan migrate:rollback回滚迁移
php artisan migrate:refresh重置数据库
php artisan db:seed填充数据库
php artisan tinker进入 tinker 环境
php artisan route:list查看路由列表

17、安装扩展包

$ yarn install --no-bin-links
$ yarn add cross-env

18、开启静态文件监听

$ npm run watch-poll

19、引入样式

{{ mix('css/app.css') }}  //将引入 public/css/app.css 样式文件。
@import "node_modules/bootstrap/scss/_alert.scss";//单独引入

20、安装yarn

$ yarn install

21、局部视图

@include('视图文件')

22、布局视图链接

{{ route('help') }}

23、数据库迁移database/migrations

命令描述
$table->bigIncrements('id');    递增 ID(主键),相当于「UNSIGNED BIG INTEGER」    
$table->bigInteger('votes');    相当于 BIGINT    
$table->binary('data');    相当于 BLOB    
$table->boolean('confirmed');    相当于 BOOLEAN    
$table->char('name', 100);    相当于带有长度的 CHAR    
$table->date('created_at');    相当于 DATE    
$table->dateTime('created_at');    相当于 DATETIME    
$table->dateTimeTz('created_at');    相当于带时区 DATETIME    
$table->decimal('amount', 8, 2);    相当于带有精度与基数 DECIMAL    
$table->double('amount', 8, 2);    相当于带有精度与基数 DOUBLE    
$table->enum('level', ['easy', 'hard']);    相当于 ENUM    
$table->float('amount', 8, 2);    相当于带有精度与基数 FLOAT    
$table->geometry('positions');    相当于 GEOMETRY    
$table->geometryCollection('positions');    相当于 GEOMETRYCOLLECTION    
$table->increments('id');    递增的 ID (主键),相当于「UNSIGNED INTEGER」    
$table->integer('votes');    相当于 INTEGER    
$table->ipAddress('visitor');    相当于 IP 地址    
$table->json('options');    相当于 JSON    
$table->jsonb('options');    相当于 JSONB    
$table->lineString('positions');    相当于 LINESTRING    
$table->longText('description');    相当于 LONGTEXT    
$table->macAddress('device');    相当于 MAC 地址    
$table->mediumIncrements('id');    递增 ID (主键) ,相当于「UNSIGNED MEDIUM INTEGER」    
$table->mediumInteger('votes');    相当于 MEDIUMINT    
$table->mediumText('description');    相当于 MEDIUMTEXT    
$table->morphs('taggable');    相当于加入递增的 taggable_id 与字符串 taggable_type    
$table->multiLineString('positions');    相当于 MULTILINESTRING    
$table->multiPoint('positions');    相当于 MULTIPOINT    
$table->multiPolygon('positions');    相当于 MULTIPOLYGON    
$table->nullableMorphs('taggable');    相当于可空版本的 morphs() 字段    
$table->nullableTimestamps();    相当于可空版本的 timestamps() 字段    
$table->point('position');    相当于 POINT    
$table->polygon('positions');    相当于 POLYGON    
$table->rememberToken();    相当于可空版本的 VARCHAR(100) 的 remember_token 字段    
$table->smallIncrements('id');    递增 ID (主键) ,相当于「UNSIGNED SMALL INTEGER」    
$table->smallInteger('votes');    相当于 SMALLINT    
$table->softDeletes();    相当于为软删除添加一个可空的 deleted_at 字段    
$table->softDeletesTz();    相当于为软删除添加一个可空的 带时区的 deleted_at 字段    
$table->string('name', 100);    相当于带长度的 VARCHAR    
$table->text('description');    相当于 TEXT    
$table->time('sunrise');    相当于 TIME    
$table->timeTz('sunrise');    相当于带时区的 TIME    
$table->timestamp('added_on');    相当于 TIMESTAMP    
$table->timestampTz('added_on');    相当于带时区的 TIMESTAMP    
$table->timestamps();    相当于可空的 created_at 和 updated_at TIMESTAMP    
$table->timestampsTz();    相当于可空且带时区的 created_at 和 updated_atTIMESTAMP    
$table->tinyIncrements('id');    相当于自动递增 UNSIGNED TINYINT    
$table->tinyInteger('votes');    相当于 TINYINT    
$table->unsignedBigInteger('votes');    相当于 Unsigned BIGINT    
$table->unsignedDecimal('amount', 8, 2);    相当于带有精度和基数的 UNSIGNED DECIMAL    
$table->unsignedInteger('votes');    相当于 Unsigned INT    
$table->unsignedMediumInteger('votes');    相当于 Unsigned MEDIUMINT    
$table->unsignedSmallInteger('votes');    相当于 Unsigned SMALLINT    
$table->unsignedTinyInteger('votes');    相当于 Unsigned TINYINT    
$table->uuid('id');    相当于 UUID    
$table->year('birth_year');    相当于 YEAR

24、数据库管理

Host: 127.0.0.1
Port: 33060
User: homestead
Pass: secret

25、数据回滚迁移

$ php artisan migrate:rollback
$ php artisan migrate

26、模型文件

 protected $table = 'users';  //数据库表
 //该字段正常更新
 protected $fillable = [
        'name', 'email', 'password',
    ];
 //该字段隐藏,不更新
 protected $hidden = [
        'password', 'remember_token',
    ];

27、替换User.php 模型文件命名空间

image.png

28、创建模型并生成迁移文件

$ php artisan make:model Models/模型名称 -m

29、数据库重置

$ php artisan migrate:refresh

30、仿跨站攻击表单

{{ csrf_field() }}

31、表单错误信息

@if (count($errors) > 0)
    <div class="alert alert-danger">
        <ul>
            @foreach($errors->all() as $error)
                <li>{{ $error }}</li>
            @endforeach
        </ul>
    </div>
@endif

32、composer 安装语言包

$ composer require "overtrue/laravel-lang:~3.0"

config/app.php  设置中文

'locale' => 'zh-CN',

33、session 一次性请求

session()->flash('success', '欢迎,您将在这里开启一段新的旅程~');
session()->get('success')//获取请求

34、身份认证Auth 的 attempt

if (Auth::attempt(['email' => $email, 'password' => $password])) {
    // 该用户存在于数据库,且邮箱和密码相符合
}

35、重定向

 return redirect()->route('users.show', [Auth::user()]);//成功
 return redirect()->back()->withInput(); //失败

36、当前用户是否登录

Auth::check()   //已登录返回 true,未登录返回 false

37、DELETE请求

{{ method_field('DELETE') }}

38、登录

Auth::login($user); //登录
Auth::logout();  //退出登录

39、更新 PATCH动作

{{ method_field('PATCH') }}

40、权限系统-中间件

所有的中间件文件都被放在项目的 app/Http/Middleware 文件夹中。

public function __construct()
    {
        $this->middleware('auth', [            
            'except' => ['show', 'create', 'store']//指定动作 不使用 Auth 中间件进行过滤
        ]);
    }

41、授权

生成授权策略文件

$ php artisan make:policy 名称Policy
//$currentUser 当前用户  $user 进行授权的用户
public function update(User $currentUser, User $user)
    {
        return $currentUser->id === $user->id;
    }

AuthServiceProvider 授权策略设置

protected $policies = [
        'App\Model' => 'App\Policies\ModelPolicy',
        \App\Models\模型名称::class  => \App\Policies\授权策略名称Policy::class,
    ];

42、友好转向

return redirect()->intended($fallback);//该方法可将页面重定向到上一次请求尝试访问的页面上,并接收一个默认跳转地址参数,当上一次请求记录为空时,跳转到默认地址上。

43、只让未登陆用户访问的页面

$this->middleware('guest', [
            'only' => ['create']
        ]);

44、模型工厂

database/factories/UserFactory.php

$factory->define(App\Models\User::class, function (Faker $faker) {
    $date_time = $faker->date . ' ' . $faker->time;
    return [
        'name' => $faker->name,
        'email' => $faker->unique()->safeEmail,
        'email_verified_at' => now(),
        'password' => '$2y$10$TKh8H1.PfQx37YgCzwiKb.KjNyWgaHb9cbcoQgdIVFlYg7B77UdFm', // secret
        'remember_token' => str_random(10),
        'created_at' => $date_time,
        'updated_at' => $date_time,
    ];
});

45、数据填充

$ php artisan make:seeder UsersTableSeeder   //生成数据填充文件

database/seeds/UsersTableSeeder.php

public function run()
    {
        $users = factory(User::class)->times(50)->make();
        User::insert($users->makeVisible(['password', 'remember_token'])->toArray());

        $user = User::find(1);
        $user->name = 'Summer';
        $user->email = 'summer@example.com';
        $user->save();
    }

database/seeds/DatabaseSeeder.php  运行假数据填充文件

public function run()
    {
        Model::unguard();

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

        Model::reguard();
    }

执行填充

$ php artisan migrate:refresh
$ php artisan db:seed
或
$ php artisan migrate:refresh --seed

46、视图分页

$users = User::paginate(10);
{!! $users->render() !!}

47、授权动作

$this->authorize('destroy', $user);

48、添加字段

创建添加字段文件

$ php artisan make:migration add_activation_to_users_table --table=users
 $table->string('activation_token')->nullable(); //示例
 $table->boolean('activated')->default(false);//示例
 $ php artisan migrate  //运行迁移

49、关联

$this->belongsTo(User::class);     一对一
$this->hasMany(Status::class);    一对多
$this->belongsToMany(User::Class, 'followers', 'user_id', 'follower_id');        多对多(followers 定义名称user_id 是定义在关联中的模型外键名,follower_id 则是要合并的模型外键名。)

50、路由限制

Route::resource('statuses', 'StatusesController', ['only' => ['store', 'destroy']]);

51、touch

$ touch app/helpers.php

Linux 的 touch touch命令有两个功能:一是用于把已存在文件的时间标签更新为系统当前的时间(默认方式),它们的数据将原封不动地保留下来;二是用来创建新的空文件。

52、Yarn 国内加速

$ yarn config set registry https://registry.npm.taobao.org



回复列表



回复操作

正在加载验证码......

请先拖动验证码到相应位置