laravel6学习笔记(一)

安装

composer create-project laravel/laravel laravel --prefer-dist “6.0.*”

安装laravel-admin

https://laravel-admin.org/docs/zh/installation

composer require encore/laravel-admin

php artisan vendor:publish --provider=“Encore\Admin\AdminServiceProvider”

php artisan admin:install

上传测试服务器

git pull

composer install --no-dev

服务器上安装composer,并使用composer self-update更新到最新版
用ftp上传文件,保持目录结构。注意不要上传vendor文件夹
到项目目录下,使用命令composer install --no-dev安装依赖
使用composer dump-autoload -o优化自动加载

监听打印mysql

php artisan make:listener QueryListener --event=Illuminate\\Database\\Events\\QueryExecuted

打开 app/Providers/EventServiceProvider.php ,在 $listen 中添加

protected $listen = [
        Registered::class => [
            SendEmailVerificationNotification::class,
        ],
        'Illuminate\Database\Events\QueryExecuted' => [
            'App\Listeners\QueryListener',
        ]
    ];
<?php

namespace App\Listeners;

use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Database\Events\QueryExecuted;
use Illuminate\Support\Facades\Log;

class QueryListener
{

    public function handle (QueryExecuted $event)
    {
        if (env('APP_ENV', 'production') == 'local') {
            $sql = str_replace("?", "'%s'", $event->sql);
            $log = vsprintf($sql, $event->bindings);
            Log::info($log);
        }
    }

}

操作新增 用户拉黑

php artisan admin:action UserAccountController\\pullBlack --grid-row --name='拉黑'
<?php

namespace App\Admin\Actions\UserAccountController;

use Encore\Admin\Actions\RowAction;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\Log;

class pullBlack extends RowAction
{
    public $name = '拉黑';

    public function handle(Model $model)
    {
        $model->role_id = 7;
        $model->save();
        return $this->response()->success('拉黑成功')->refresh();
    }

    public function dialog()
    {
        $this->confirm('确定拉黑?');
    }
}

在这里插入图片描述

新增help辅助函数 需要更新

composer dump-autoload

控制器监听数据库sql

DB::listen(function ($query){
            Log::info($query->sql);
        });

模型数据绑定重置绑定关系,解决n+1查询

绑定$with=’’(初始化数据结构)

protected static function boot()
    {
        parent::boot();
        static::addGlobalScope('phone', function (Builder $builder) {
            $builder->with('useracc');
        });
    }

多对多关联,穿梭多选

实现角色编辑权限,穿梭多选效果

一个角色对应N个权限,一个权限属于N个角色,角色和权限属于多对多模型
对角色进行编辑所属权限,展示位权限名称

role控制器



protected function form()
    {
        $form = new Form(new UserRole());
        $form->text('name', __('Name'));
        $form->text('description', __('Description'));
        $form->listbox('rolepermissions')->options(UserPermission::all()->pluck('name', 'id'));
        return $form;
    }
    

role model
user_role_permissions 中间表

public function rolepermissions(){
        return $this->belongsToMany(UserPermission::class,'user_role_permissions','role_id','permission_id');
    }

在这里插入图片描述
显示:
detail:

//rolepermissions 多对多
        $show->rolepermissions('权限', function ($rolepermissions) {
            $rolepermissions->resource('/admin/userpermissions');//可以在查看的时候进行权限的新增删除
            $rolepermissions->id();
            $rolepermissions->name();
            $rolepermissions->description();
        });

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值