Laravel&Laravel-admin新手必踩的一些坑

作者: JONE 分类: 编程 发布时间: 2021-06-12 13:54

原链接:http://www.howingwah.com/program/laravel/748/

1、获取值的方式

    (string) request('appid', ''); //字符串
    intval(request('time', 0));   //数字整形

备注:request(‘字段名’,’默认值’);

2、判断Laravel-admin是否管理员

    Admin::user()->isAdministrator()

3、跳转错误页面

$code = 状态码,假如是404,对应的是404.blade.php

    return response()->view('errors.' . $code, [], $code);

4、Laravel-admin 闭包相关

    return Admin::grid(EnrollFieldModel::class, function (Grid $grid) use ($rid) {
        $grid->must('是否必填')->display(function ($must) {
            return $must ? '是' : '否';
        });//该字段,是与否输出
    })

5、Pjax屏蔽

    Admin::disablePjax();//隐藏Pjax

要是自定义视图的时候,会默认触发Pajx,导致自己写的js会失效(刷新又会生效)的问题,要屏蔽Pjax

更详情请点击上一篇文章《Laravel-admin 自定义视图时,js不能运行,刷新一遍又可以了,解决方法!

6、自定义视图,post的时候,419错误(状态码)

是因为该视图页面,没有加入_token,这是为了防止csrf攻击的表单。所以我们要在视图的表单里面加入

    <input type="hidden" name="_token" value="{{ csrf_token() }}">

7、自定义视图输出

    // 输出内容,被转义过的
    {{ $var }}
    // 输出未转义内容,5.0 特性、这里一般适合输出编辑器里面的内容
    {!! $var !!}

    //foreach
    @foreach($sorts as $key=>$sort)

    @endforeach

    //ifelse
    @if ($aa == $bb )

    @elseif

    @endif

    //获取资源的前缀地址(css、js)
    {{asset('addons/jquery-weui/lib/weui.min.css')}}

8、Laravel-admin 后台自定义视图,ajax返回成功与失败

情景:一般用在自定义视图,因为有些需求,Laravel-admin不是全部都适合,所以要自定义视图,当插入,更改的时候,需要返回成功与失败。要用到这个~

    return response()->json([
        'status' => true,//false则是失败
        'message' => trans('删除成功'),//文字提示
    ]);

9、Laravel-admin使用表单构成

    $form->text('title', '活动标题')->rules('required');
    $form->textarea('description', '活动描述')->rules('required');
    $form->multipleSelect('modules', '模块')->options(“数组”)->default('action');

rules(‘required’) 必填

10、model层的一些记录

a、重新定义created_at的字段

    const CREATED_AT = 'create_time';
    const UPDATED_AT = 'update_time';

b、使用软删除

    namespace Addons\EnrollAction\Models;
    use Illuminate\Database\Eloquent\SoftDeletes;
    class EnrollConfigModel extends Model
    {
        useSoftDeletes;
    }
重点:该数据表,必须要有 deleted_at字段

c、输出入插入自动转换

    //插入数据库时候转成json格式
    setChargeValueAttribute  =  charge_value 字段

    public function setChargeValueAttribute($value)
    {
        return json_encode($value);
    }
    //拿数据的时候,从json转array格式
    public function getChargeValueAttribute($value)
    {
        return json_decode($value,true);
    }

d、默认转换时间

    protected $dateFormat = 'U';                    //U = unix格式
    protected $dateFormat = 'Y-m-d H:i:s'; // 日期格式

e、不使用默认的日期模块

   public $timestamps = false;

f、设置默认被更改的时间

    protected $dates = ['created_at','updated_at'];//默认被更改的时间

g、设置默认的数据表

    protected $table = 'enroll_config';

h、设置默认主键

    public $primaryKey = 'id';