四、視圖
模板配置
1、視圖的配置文件:system/config/views.php
2、使用:return views("view.php")方法來返回指定的視圖文件。
3、此方法不傳遞參數時的查找方法:當前方法所在的模塊中的views目錄中,查找當前控制器名目錄中,查找當前動作名的視圖文件。即當前的方法為:home/index/action;則會查找的視圖文件為:home/views/index/action.php
4、當傳遞視圖文件名參數時,系統會從系統根目錄進行查找。所以最好跟上一定的路徑:return views("/temp/show.php");;這樣系統會查找指定路徑下的指定文件。
數據分配
1、數據分配可以將例如從數據庫中讀取的數據分配到加載進來的view文件視圖之中。(這些views中的文件,被加載進來后是否能使用系統中的對象和數據的。)。
2、數據分配方法:
單一數據分配:view::with(key,value)
數組數據分配:view::with([key1=>value1,key2=>value2])
3、視圖中數據接收方式:{{$key}}
分配:view::with([key1=>value1,key2=>value2])
接收:{{$key1}} {{$key2}}
4、顯示模板:return view(); return view(path)
5、分配數據時同時顯示模板
return view::whith(key,value)->make();
return view::make()->with(key,value)
6、在視圖模板中使用{{var}}來讀取同名的變量的值,同時也可以用來執行任意的php代碼。
7、忽略解析而直接輸出:在兩個大括號前加上@即可。@{{var}}這樣會被直接輸出。
實例:
View::with("name","zxy");傳送 {{$name}}接收
要注意:View::with() V是大寫的,是使用類名來調用其靜態方法,類名都是大寫的!
View::with("name","zxy");
View::with(["key1"=>"value1","key2"=>"value2"]);
//return View::with(["key3"=>"value3","key4"=>"value4"])->make();
return View::make()->with(["key3"=>"value3","key4"=>"value4"]);
//return view();
都嘗試了一次,都正常。
請求響應
1、請求響應:當頁面執行相關操作時反饋給用戶的一些消息、警告、提示等
2、配置文件位置:system/config/view.php
3、種類:消息、確認
消息:message( $提示內容, $跳轉方式', $消息類型, $顯示時間 )
提示內容:由用戶來自定義
跳轉方式:1:back或為空(返回上一頁) 2:refresh(刷新當前頁) 3:具體Url
消息類型:success(成功),error(失敗),warning(警告),info(提示)
顯示時間:單位秒,此提示信息顯示的時間長短
確認:confirm('確定刪除嗎?',u('ok'),u('cancel'));
確定刪除嗎:提示信息
u('ok'):點擊確認時所要跳轉的頁面
,u('cancel'):點擊取消時所要執行跳轉的頁面。
message( "這是提示信息!", $redirect = 'back', $type = 'success', $timeout = 30 );
confirm('確定刪除嗎?',u('ok'),u('cancel'));
測試正常
模板繼承
模板繼承:創建一個父模板文件,在父文件中用<blade name="content"/><widget name="header">這樣標簽定義一些區域。再創建子文件繼承父文件<extend file='master'/>,并且在子文件中使用block標簽定義視圖內容,block替換“父級模板"中相同name屬性的blade標簽,parent標簽用于將父級模板 widget標簽內容顯示到此處,parent標簽支持向父級傳遞內容如上例中的title,父級中使用{{title}}方式調用。
父文件 子文件
<extend file='master'/> <blade name="content"/> <=填充 <block name="content">內容</block>
1、父文件中:
blade標簽是讓子文件來填充
widget標簽是去填充子文件
2、子文件中
block標簽是去填充父文件的blade標簽
parent是讓父文件的widget標簽來填充
3、總的來說有2點:
父文件填充子文件區域:widget->parent
子文件填充父文件區域:block->blade