本篇主要內容
後臺最常見的功能就是增刪改查功能,在使用laravel-admin過程中,有一些功能的特殊顯示,需要我們頻繁的去查閱文檔
這裏呢,我就總結一下自己遇到的一些常用的,各位看官複製粘貼即可
增/改
普通必填input框
$form->text('code', '品種代碼')->rules('required');
下拉選項
$form->select('open_status', '允許/禁止開倉')->options(
[PositionStatus::ALLOW => '允許開倉', PositionStatus::BAN => '禁止開倉']
);
上面的PositionStatus是自己創建枚舉類 方便自己維護大概的寫法如下
<?php
namespace App\Enum;
/**
* 是否允許開倉
* Class SwitchStatus
* @package App\Enum
*/
class PositionStatus
{
//允許
const ALLOW = 1;
//禁止
const BAN = 2;
//是否允許開倉
const OPEN_PERMISSION = [
self::ALLOW => '允許',
self::BAN => '禁止'
];
}
時間選項(數值只要時+分)
$form->time('constraint_time_two', '強平時間2')->format("HH:mm");
下拉選項(內容來自讀表數據)
首先要創建那個表的模型層 ,調用的過程中 一個字段用來顯示到客戶端 另外一個字段就用來插入當前主表的關聯字段
$form->select('exchange_id', '交易所')
->options(ExchangeModel::all()->pluck('name', 'exchange_id'));
開關類型
$states = [
'on' => [
'value' => PositionStatus::ALLOW,
'text' => '是',
'color' => 'primary'
],
'off' => [
'value' => PositionStatus::BAN,
'text' => '否',
'color' => 'default'
],
];
$form->switch('open_permission', '允許開倉')->states($states);
密碼類
下面的confirm會進行驗證
$form->password('password', '賬號密碼')->rules("confirmed");
給輸入框一個默認值
這裏給的默認值 是當前主表的字段值
$form->password('password_confirmation', '確認密碼')->default(
function ($form) {
return $form->model()->password;
}
);
忽略提交過來的字段
$form->ignore(['password_confirmation']);
顯示照片
$form->image('avatar', trans('admin.avatar'));
設置提交的路由
$form->setAction('auth/setting');
表單隱藏域
$form->hidden('risk_template_id', '風控模板Id')->value($riskTemplate->risk_template_id);
刪
不再贅述
https://laravel-admin.org/docs/zh/model-grid-soft-deletes
查
也就是列表渲染數據
聯表
這裏的聯合了variety
以及 variety
模型關聯的exchange
$grid->with(['variety','variety.exchange']);
where條件
Enable::DEL
是枚舉類
$grid->model()->where('contract.enable', '<>', Enable::DEL);
顯示鏈式操作的數據
$grid->column('variety.exchange.name', '交易所')->display(
function () {
return $this->variety->exchange->name ?? "無";
}
);
搜素
$grid->filter(
function (Grid\Filter $filter) {
$filter->disableIdFilter();
$filter->like('name', '代理名稱');
$filter->like('code', '代理代碼');
}
);
格式化顯示(時間,精確小數點,枚舉類字段語義化)
$grid->column('create_at', '創建時間')->display(
function ($time) {
return date('Y-m-d H:i:s', $time);
}
);
$grid->column('amount', '佣金金額')->totalRow()->display(
function ($amount){
return price_number('0.01',$amount);
}
);
$grid->column('type', '來源')->display(
function ($type) {
return [
UserEnum::SOURCE_ADMIN => "總管理",
UserEnum::SOURCE_AGENT => "代理"
][$type] ?? '';
}
);
顯示不一樣的樣式
$grid->column('status', '狀態')->display(
function ($status) {
if ($status == AgentStatus::NO_AUDIT) {
return "<span class='label bg-yellow'>未審覈</span>";
} elseif ($status == AgentStatus::AUDIT_SUCCESS) {
return "<span class='label bg-green'>審覈成功</span>";
} elseif ($status == AgentStatus::AUDIT_FAIL) {
return "<span class='label bg-red'>審覈失敗</span>";
} else {
return '凍結';
}
}
);
算出某一列的合計
$grid->column('money', '當前賬號金額')->display(
function ($money) {
return number_format($money, 2);
}
)->totalRow();
基本上常用的都在這裏了,如果沒有想要的,纔去查看文檔也來得及!
覺得有用的點個贊加個關注吧!
有問題的歡迎在評論區留言!