FastAdmin
注意食用姿勢,建議先通讀官方文檔一次,在看
根據環境及配置的不同,僅作參考
修改mysql表注釋
ALTER TABLE student COMMENT '學生表';
系統配置->郵件配置(測試發送成功)
注意在郵箱中開啟
POP3/SMTP服務
IMAP/SMTP服務
需PHP5.6版本,7以上版本不支持
SMTP用戶名 -> 郵箱地址
SMTP密碼 -> 在郵箱賬戶設置中生成的授權碼
發件人郵箱 -> 屬於當前郵箱的賬號都可作為發件人郵箱
fastadmin設置首頁直接跳轉后台登錄
$this->redirect('admin/index/login');
去除首頁安全提示(隱藏admin登錄入口)
在application的config.php中修改 deny_module_list 添加 admin 如下:
'deny_module_list' => ['common','admin']
修改public中的admin.php文件名為 xxx.php(可以改為任意符合PHP命名規則的名稱)
訪問:www.yoursite.com/xxx.php 即可
如已配置前台自動跳轉登錄需將跳轉方法改為:
$this->redirect('xxx.php/index/login');
{:xxx}
引用PHP函數
{:build_toolbar('refresh,add,delete')}
在application/common.php中,用於生成HTML頁面
$this->assignconfig('demo', '傳參到JS測試');
將數據透傳到JS中,可直接在JS中使用
設置頁面數據必填
在input標簽中添加
data-rule="required"
requirejs
頁面中的js統一由requorejs管理
視圖、控制器、JS一一對應,
如:
application/admin/controller /user/index 控制器對應
application/admin/view /user/index 視圖對應
public/assets/js/backend /user/index JS
var Orderdata = {
column: {:json_encode(array_keys($paylist))},
paydata: {:json_encode(array_values($paylist))},
createdata: {:json_encode(array_values($createlist))},
};
將頁面中的數據放入對象,可在JS中使用
admin/view/user/user/index.html
{:build_toolbar('refresh,edit,del')}
用於控制頁面圖標顯示
data-operate-edit="{:$auth->check('user/user/edit')}"
控制表格操作顯示
對應JS中
Table.api.init
初始化路由參數,刪除后不可提交
extend-擴展類庫
vendor-第三方類庫
extra-擴展配置目錄
框架只能加載首頁時(域名后加上index.php也可以訪問其他頁面),在服務器添加偽靜態,內容同下
去除PHP域名解析時的index.php
在文件入口處添加.htaccess文件
<IfModule mod_rewrite.c>
Options +FollowSymlinks -Multiviews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]
</IfModule>
FastAdmin
開關中提示“未更新任何行”在相應控制器中添加
protected $multiFields = 'status,switch';
或在基類中添加switch
/**
* Multi方法可批量修改的字段
*/
protected $multiFields = 'status,switch';
依然無用則在相應控制器中覆蓋
/**
* 批量操作
* @param string $ids
*/
public function multi($ids = "")
{
$params = $this->request->request('params');
parse_str($params, $paramsArr);
if (isset($paramsArr)) {
$field = \app\admin\model\Test3::get($ids);
$field->save($paramsArr);
$this->success('操作成功');
}
return parent::multi($ids);
}
_id
兩種方式,一種系統配置,一種自己添加
一、系統配置(不需要修改頁面代碼,只添加數據即可)
常規管理->系統配置->字典配置中添加分類類型
類型與數據庫表名對應(不要前綴)(鍵相同會覆蓋值)
在分類管理中添加分類
類型與字典配置中的值一致
此時去對應的視圖中即可獲取到數據
二、手動設置讀取的字段
data-source="category/selectpage" 對應的控制器
data-params='{"custom[type]":"test"}' 指定需要關聯的數據(如不需要去掉即可)
name="row[category_ids]" 當前表單提交的對應字段
_id使用
需確認相應input屬性data-source所對應的控制器,默認獲取name字段的,可用data-field設置需要讀取的字段信息
data-field="id" data-source="test/index"
全句如下:
<input id="c-test_id" data-rule="required" data-source="test/index" class="form-control selectpage" name="row[test_id]" type="text" value="">
外鍵關聯查詢
->with(['cart'=>function($query){ $query->withField(''); $query->where(); }, ])
高級模式
public function index() { $this->relationSearch = true; $this->searchFields = "id"; if ($this->request->isAjax()) { list($where, $sort, $order, $offset, $limit) = $this->buildparams(); $total = $this->model ->with("cart") ->with(['cart'=>function($query){ $query->withField(''); $query->where(); }, ]) ->where($where) ->order($sort, $order) ->count(); $list = $this->model ->with("cart") ->where($where) ->order($sort, $order) ->limit($offset, $limit) ->select(); $result = array("total" => $total, "rows" => $list); return json($result); } return $this->view->fetch(); }
enum和set類型生成對應的字段注釋
創建字段后填寫相應值
在字段注釋中添加相應值的選項,如下
單選下拉:1=單選1,2=單選2,3=單選3,4=單選4,5=單選5
后台/admin
前台/controller
/view
模板基類/default/common/layout
首頁/default/index
右側推薦/default/common/sidebar
表單/default/diyform
單頁/default/page
專題/default/special
首頁index </aside>標簽之上 刪除的右側欄
{include file="common/sidebar" /}
fastadmin框架信息
{$site.name}
如果是數組類型調用如下:
<?php print_r($site); ?>
CMS配置信息
{$config.sitename}
如果是數組類型調用如下:
<?php print_r($config); ?>
頁面信息控制:
public\assets\js\require-backend.min.js,后台運行時加載的JS
搜索this.options.formatExport(),可更改頁面中導出的button
控制器——application\admin\controller\student\Student.php
模型層——application\admin\model\Srudent.php
視圖層——application\admin\view\student\student
驗證規則——application\admin\validate\Student.php
語言包——application\admin\lang\zh-cn\student\student.php
js文件——public\assets\js\backend\student\student.js