W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
子視圖允許你插入在控制器以外生成的 HTML 片段,但它只能調(diào)用指定類的方法,且該方法只能返回有效的 HTML 字符串內(nèi)容。這個(gè)可調(diào)用方法可以是在 項(xiàng)目中自動(dòng)加載器可以定位到的任何可訪問類的任何方法,唯一的限制是該類的構(gòu)造方法不可有必須傳入的參數(shù)。使用這個(gè)功能后,對模塊化代碼有很好的幫助。
<?= view_cell('\App\Libraries\Blog::recentPosts') ?>
在這個(gè)示例中,會自動(dòng)運(yùn)行 App\Libraries\Blog
類的 recentPosts()
方法,該方法必須返回有效的 HTML 字符串。該方法可以是 靜態(tài)方法,也可以是非靜態(tài)方法。
可以通過 view_cell
方法的第二個(gè)參數(shù)向方法進(jìn)行傳值來進(jìn)一步優(yōu)化調(diào)用方式。參數(shù)支持鍵/值對的數(shù)組或鍵/值對的字符串(已逗號分隔):
// 數(shù)組形式的參數(shù)
<?= view_cell('\App\Libraries\Blog::recentPosts', ['category' => 'codeigniter', 'limit' => 5]) ?>
// 字符串形式的參數(shù)
<?= view_cell('\App\Libraries\Blog::recentPosts', 'category=codeigniter, limit=5') ?>
public function recentPosts(array $params=[])
{
$posts = $this->blogModel->where('category', $params['category'])
->orderBy('published_on', 'desc')
->limit($params['limit'])
->get();
return view('recentPosts', ['posts' => $posts]);
}
此外,可以在方法中使用與參數(shù)變量匹配的參數(shù)名稱,以提高可讀性。當(dāng)以這種方式使用它時(shí),必須始終在視圖調(diào)用方法中指定所有參數(shù):
<?= view_cell('\App\Libraries\Blog::recentPosts', 'category=codeigniter, limit=5') ?>
public function recentPosts(int $limit, string $category)
{
$posts = $this->blogModel->where('category', $category)
->orderBy('published_on', 'desc')
->limit($limit)
->get();
return view('recentPosts', ['posts' => $posts]);
}
您可以通過傳遞緩存數(shù)據(jù)的秒數(shù)作為第三個(gè)參數(shù)來緩存子視圖的調(diào)用結(jié)果,默認(rèn)將使用當(dāng)前配置的緩存引擎。
// 視圖將緩存 5 分鐘
<?= view_cell('\App\Libraries\Blog::recentPosts', 'limit=5', 300) ?>
當(dāng)然,你也可以自定義緩存視圖的文件名已替換默認(rèn)的緩存文件名,通過第 4 個(gè)參數(shù)來自定義:
// 視圖將緩存 5 分鐘,將緩存文件重新命名為 newcacheid
<?= view_cell('\App\Libraries\Blog::recentPosts', 'limit=5', 300, 'newcacheid') ?>
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: