<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # 列表行為 ### [](https://octobercms.com/docs/backend/lists#extend-list-behavior)擴展列表行為 有時您可能希望修改默認列表行為,并且有幾種方法可以執行此操作。 * [覆蓋控制器動作](https://octobercms.com/docs/backend/lists#overriding-action) * [覆蓋視圖](https://octobercms.com/docs/backend/lists#overriding-views) * [擴展列定義](https://octobercms.com/docs/backend/lists#extend-list-columns) * [注入CSS行類](https://octobercms.com/docs/backend/lists#inject-row-class) * [擴展過濾范圍](https://octobercms.com/docs/backend/lists#extend-filter-scopes) * [擴展模型查詢](https://octobercms.com/docs/backend/lists#extend-model-query) * [自定義列類型](https://octobercms.com/docs/backend/lists#custom-column-types) ### [](https://octobercms.com/docs/backend/lists#overriding-action)覆蓋控制器動作 您可以`index`對控制器中的action方法使用自己的邏輯,然后有選擇地調用List behavior`index`父方法。 ~~~ public function index() { // // Do any custom code here // // Call the ListController behavior index() method $this->asExtension('ListController')->index(); } ~~~ ### [](https://octobercms.com/docs/backend/lists#overriding-views)覆蓋視圖 該`ListController`行為具有一個主容器視圖,您可以通過`_list_container.htm`在控制器目錄中創建一個特殊文件來覆蓋它。以下示例將向邊欄添加一個邊欄: ~~~ <?php if ($toolbar): ?> <?= $toolbar->render() ?> <?php endif ?> <?php if ($filter): ?> <?= $filter->render() ?> <?php endif ?> <div class="row row-flush"> <div class="col-sm-3"> [Insert sidebar here] </div> <div class="col-sm-9 list-with-sidebar"> <?= $list->render() ?> </div> </div> ~~~ 該行為將調用一個`Lists`小部件,該小部件還包含許多您可以覆蓋的視圖。通過指定[列表配置選項](https://octobercms.com/docs/backend/lists#configuring-list)`customViewPath`中所述的選項,可以實現此目的。小部件將首先在此路徑中查找視圖,然后退回到默認位置。[](https://octobercms.com/docs/backend/lists#configuring-list) ~~~ # Custom view path customViewPath: $/acme/blog/controllers/reviews/list ~~~ > **注意**:例如`list`,最好使用子目錄以避免沖突。 例如,要修改列表主體行標記,請`list/_list_body_row.htm`在控制器目錄中創建一個名為的文件。 ~~~ <tr> <?php foreach ($columns as $key => $column): ?> <td><?= $this->getColumnValue($record, $column) ?></td> <?php endforeach ?> </tr> ~~~ ### [](https://octobercms.com/docs/backend/lists#extend-list-columns)擴展列定義 您可以通過`extendListColumns`在控制器類上調用static方法從外部擴展另一個控制器的列。此方法可以接受兩個參數,**$ list**將代表Lists小部件對象,而**$ model則**代表列表使用的模型。以這個控制器為例: ~~~ class Categories extends \Backend\Classes\Controller { public $implement = ['Backend.Behaviors.ListController']; public $listConfig = 'list_config.yaml'; } ~~~ 使用該`extendListColumns`方法,可以將多余的列添加到此控制器呈現的任何列表中。檢查**$ model**的類型正確是一個好主意。這是一個例子: ~~~ Categories::extendListColumns(function($list, $model) { if (!$model instanceof MyModel) { return; } $list->addColumns([ 'my_column' => [ 'label' => 'My Column' ] ]); }); ~~~ 您還可以通過覆蓋`listExtendColumns`控制器類內部的方法在內部擴展列表列。 ~~~ class Categories extends \Backend\Classes\Controller { [...] public function listExtendColumns($list) { $list->addColumns([...]); } } ~~~ $ list對象上可以使用以下方法。 | 方法 | 描述 | | --- | --- | | **addColumns** | 將新列添加到列表 | | **removeColumn** | 從列表中刪除一列 | 每種方法都采用類似于[列表列配置](https://octobercms.com/docs/backend/lists#list-columns)的列數組。 ### [](https://octobercms.com/docs/backend/lists#inject-row-class)注入CSS行類 您可以通過`listInjectRowClass`在控制器類上添加方法來注入自定義css行類。此方法可以使用兩個參數,**$ record**將代表單個模型記錄,而**$ definition**包含List小部件定義的名稱。您可以返回任何包含行類的字符串值。這些類將添加到行的HTML標記中。 ~~~ class Lessons extends \Backend\Classes\Controller { [...] public function listInjectRowClass($lesson, $definition) { // Strike through past lessons if ($lesson->lesson_date->lt(Carbon::today())) { return 'strike'; } } } ~~~ `nolink`即使為List小部件定義了`recordUrl`or`recordOnClick`選項,也可以使用特殊的CSS類來強制行不可單擊。在事件中返回此類將使您使記錄不可單擊-例如,對于軟刪除的行或信息行: ~~~ public function listInjectRowClass($record, $value) { if ($record->trashed()) { return 'nolink'; } } ~~~ ### [](https://octobercms.com/docs/backend/lists#extend-filter-scopes)擴展過濾范圍 您可以通過`extendListFilterScopes`在控制器類上調用static方法從外部擴展另一個控制器的過濾范圍。此方法可以使用參數**$ filter**,它將表示Filter小部件對象。以這個控制器為例: ~~~ Categories::extendListFilterScopes(function($filter) { // Add custom CSS classes to the Filter widget itself $filter->cssClasses = array_merge($filter->cssClasses, ['my', 'array', 'of', 'classes']); $filter->addScopes([ 'my_scope' => [ 'label' => 'My Filter Scope' ] ]); }); ~~~ > 提供的范圍數組類似于[列表過濾器配置](https://octobercms.com/docs/backend/lists#list-filters)。 您還可以在內部將過濾器作用域擴展到控制器類,只需覆蓋該`listFilterExtendScopes`方法即可。 ~~~ class Categories extends \Backend\Classes\Controller { [...] public function listFilterExtendScopes($filter) { $filter->addScopes([...]); } } ~~~ 在$ filter對象上可以使用以下方法。 | 方法 | 描述 | | --- | --- | | **addScopes** | 向過濾器小部件添加新范圍 | | **removeScope** | 從過濾器小部件中刪除范圍 | ### [](https://octobercms.com/docs/backend/lists#extend-model-query)擴展模型查詢 可以通過覆蓋控制器類內部的方法來擴展對列表[數據庫模型](https://octobercms.com/docs/database/model)的查找查詢`listExtendQuery`。通過將**withTrashed**范圍應用于查詢,此示例將確保軟刪除的記錄包括在列表數據中: ~~~ public function listExtendQuery($query) { $query->withTrashed(); } ~~~ 該[列表篩選](https://octobercms.com/docs/backend/lists#list-filters)模型的查詢,也可以通過重寫擴展`listFilterExtendQuery`方法: ~~~ public function listFilterExtendQuery($query, $scope) { if ($scope->scopeName == 'status') { $query->where('status', '<>', 'all'); } } ~~~ ### [](https://octobercms.com/docs/backend/lists#extend-records-collection)擴展記錄收集 通過覆蓋`listExtendRecords`控制器類內部的方法,可以擴展列表使用的記錄的集合。本示例使用[記錄集合](https://octobercms.com/docs/database/collection)`sort`上的方法來更改[記錄](https://octobercms.com/docs/database/collection)的排序順序。 ~~~ public function listExtendRecords($records) { return $records->sort(function ($a, $b) { return $a->computedVal() > $b->computedVal(); }); } ~~~ ### [](https://octobercms.com/docs/backend/lists#custom-column-types)自定義列類型 可以使用[Plugin注冊類](https://octobercms.com/docs/plugin/registration#registration-methods)的`registerListColumnTypes`方法在后端注冊自定義列表列類型。該方法應返回一個數組,其中鍵是類型名稱,值是可調用函數。可調用函數接收三個參數,本機,定義對象和模型對象。[](https://octobercms.com/docs/plugin/registration#registration-methods)`$value``$column``$record` ~~~ public function registerListColumnTypes() { return [ // A local method, i.e $this->evalUppercaseListColumn() 'uppercase' => [$this, 'evalUppercaseListColumn'], // Using an inline closure 'loveit' => function($value) { return 'I love '. $value; } ]; } public function evalUppercaseListColumn($value, $column, $record) { return strtoupper($value); } ~~~ 使用自定義列表列類型就像使用`type`選項按名稱調用一樣簡單。 ~~~ # =================================== # List Column Definitions # =================================== columns: secret_code: label: Secret code type: uppercase ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看