backpack

分类下相关文章

laravel backpack url 中包含多个参数时,编辑某条数据时数据错乱

问题的现象是这样的: 例如: 编辑 shop id 为 3 的店铺中,商品 id 为 11 的商品 https://www.xxx.com/admin/shop/3/products/11/edit 但是 backpack 自带的编辑页面,永远返回的是商品 id 为 3 的商品。 也就是说,编辑时,永远取的是链接中的第一个参数作为 model 的 ID。 只需要在 CrudController 中加入 edit,destroy 的代码,以覆盖父函数的实现即可。 public function edit($id) { $id = request()->route('product'); ...

阅读全文...

laravel backpack 数据列表页 ajax-loader.gif 404 问题

解决方法: mkdir -p public/vendor/backpack/crud/img/ cp vendor/backpack/crud/src/public/crud/img/ajax-loader.gif public/vendor/backpack/crud/img/ ...

阅读全文...

laravel backpack 管理后台使用手机号替换邮箱登录

这个时代用邮箱的人越来越少。很多客户反馈,希望使用手机号替换掉目前的邮箱登录管理后台的方式。 Laravel 切换登录方式确实非常简单。 使用手机号替换邮箱登录 修改 username 的返回即可。 +++ b/app/Http/Controllers/Auth/LoginController.php @@ -20,6 +20,11 @@ class LoginController extends Controller use AuthenticatesUsers; + public function username() + { + ...

阅读全文...

Laravel backpack 通过 url 链接参数设置列表页面的默认过滤条件

例如,我想查看 https://abc.com/admin/news 这个列表页中,store_id 为 29 的信息。 过滤的方法是在链接中加入请求参数 https://abc.com/admin/news?store_id=29 crud controller 中对参数进行检查,并设置过滤条件 use Illuminate\Support\Facades\Input; $store_id = Input::get('store_id', 0); if ($store_id) { $this->crud->addClause('where', 'store ...

阅读全文...

Laravel backpack supports multi roles in blade template

As document, use hasanyrole(Role::all()) to support multi roles in blade template. https://github.com/Laravel-Backpack/PermissionManager @hasanyrole(Role::all()) I have one or more of these roles! @else I have none of these roles... @endhasanyrole Error shows: [2019-06-24 14:29:36] producti ...

阅读全文...

laravel backpack 管理后台编辑页面布局优化

优化后的效果 一行显示多个 field 使用标签页分组显示 设置 field 宽度 默认是占一整行,不但浪费空间,而且难看的不行。 找到一个优化的配置,可以使用 bootstrap 的自适应布局设置。 https://github.com/Laravel-Backpack/CRUD/issues/30 $this->crud->addFields([ 'name' => 'name', 'type' => 'text', 'label' => '姓名', 'wrapperAttributes' => [ 'class' =&g ...

阅读全文...

Laravel Console 命令中无法读取 backpack Config::get 配置项

非常诡异的问题,自定义一个 Laravel Console Command 命令。 但是读取 backpack Config::get 配置项时,返回均为空。 参考 https://github.com/Laravel-Backpack/Settings/issues/23 中的解决方案: 在使用 Config::get 前,添加 use Backpack\Settings\app\Models\Setting as Setting; $settings = Setting::all(); foreach ($settings as $key => $setting) { ...

阅读全文...

更换图片上传组件之后,需要更改的地方

数据库更新 update products set images = replace(images, '前缀','http://前缀-cdn.jindongsoft.com/前缀') ; 生成分享图 App\\Http\\Controllers\\Admin\\UserCrudController->gen_image_to_share(Object(Illuminate\\Http\\Request)) 购物车图片 app/Http/Controllers/CartController.php: $cart->image = "ht ...

阅读全文...

自定义组件在 backpack 列表页编辑字段

可以自定义一个列表字段,即 column type。 效果如图: 前端列表页,自动更新 如果更新成功,后台返回更新后的值,然后前端更新成对应的值。 自定义一个 column type 类似 field type vendor/backpack/crud/src/resources/views/columns/ 后台的抽象 接口参数 model name id 字段名 值 防止 JS 函数定义多次 使用 js 不合适,用 php 来规避。 其实就两种函数,radio 和数值修改,所以之间写在 list.js 里也未尝不可。 public/vendor/backpack/crud/js/li ...

阅读全文...

Element UI 结合七牛 JS SDK 实现视频文件上传

由于七牛 JS SDK Demo 里的按钮效果太丑,所以改用 Element UI 重写了前端展示。 效果如下: 七牛 JS SDK 文档 https://developer.qiniu.com/kodo/sdk/1283/javascript 限制视频格式 https://github.com/qiniu/js-sdk/issues/307 限制视频大小 https://github.com/qiniu/js-sdk/issues/307 上传进度 使用 element ui 的进度条组件 https://element.eleme.cn/#/zh-CN/component/progres ...

阅读全文...

修改 backpack SettingsTableSeeder 逻辑,只插入新增的配置

Laravel backpack SettingsTableSeeder 的默认逻辑非常不人性化,直接 truncate 配置表,然后重新写入配置。 php artisan db:seed --class=SettingsTableSeeder 对于线上系统已有配置的情况下,非常不合理。 所以将逻辑调整了一下,改成了只写入不存在的 key。 /** * Run the database seeds. * * @return void */ public function run() { // truncate table // DB::table('settings' ...

阅读全文...

基于 element-china-area-data 的 backpack 省市区选择组件

由于使用的 element-china-area-data 组件,需要提供省市区三个 ID 才能正常显示,所以增加了两个字段 province_id city_id 而 county_name 是为了缓存省市区的中文名称 效果如图 实现代码 <div @include('crud::inc.field_wrapper_attributes') id="county_picker"> <input ref="county_id" type="hidden" name="county_id" ...

阅读全文...

Laravel Backpack 记录当前数据条目的录入者

例如,家具数据表对于的 CRUD 要记录每条家具信息是谁录入的。 在家具表加入一个字段 creator_id 在 CRUD Controller 的 store 函数中插入录入人员的逻辑 public function store(StoreRequest $request) { $request->request->add([ "creator_id" => \Auth::user()->id, ]); $redirect_location = parent::storeCrud($request); ...

阅读全文...

Laravel Backpack 后台管理实现链接参数过滤

例如,默认 Backpack 实现的一个 CRUD controller 可以查看一个数据表中的所有数据,这里假设是所有的支付历史。 但是,我现在需要能够从用户列表页面通过一个链接,链接到支付历史页面时,可以只查看该用户的支付历史。 实现方法 route/admin.php 中添加两个路由 CRUD::resource('pay_history', 'PayHistoryCrudController'); CRUD::resource('user/{user_id}/pay_history', 'PayHistoryCrudController'); 这样 访问 /admin/pay_hi ...

阅读全文...

Laravel Backpack 的多图上传及拖拽排序组件

功能 多图上传 拖拽图片排序 删除图片 点击放大预览 animated 特效 代码实现 <style type="text/css"> input.el-upload__input { display: none; } </style> <div id="images_uploader_{{ $field['name'] }}" @include('crud::inc.field_wrapper_attributes') > <input type="hidden" n ...

阅读全文...