|
Laravel::View Part1 มาดู View ของ Laravel |
Laravel::View Part1 มาดู View ของ Laravel Views คือส่วนการแสดผลของเว็บไซต์ของเรานะครับ เราแยกออกมาเพื่อทำให้ง่ายต่อการจัดการได้ง่ายนะครับ ใน Laravel นี้จะมี template คือ blade engine ซึ่งจะไปพูดในบทพาร์ทหน้านะครับ ติดมาให้ด้วยเลย เรามาดูตัวอย่างกัน
สร้าง ไฟล์ index.html ขึ้นมาในโฟลเดอร์ home ที่เราสร้างขึ้นไว้ตรงที่ application/View มาสักไฟล์แล้วใส่โค้ดข้างล่างลงไปครับ
Code (PHP)
<html>
I'm stored in views/home/index.php!
</html>
ต่อมาเราก็เข้าไปตั้งค่าใน Route นะครับ:
Code (PHP)
Route::get('/', function()
{
return View::make('home.index');
});
สร้างฟังชันขึ้นมารองรับค่าจาก view นั้น
Code (PHP)
public function action_index()
{
return View::make('home.index');
});
ใช้ฟังก์ชันข้างล่างตรวจว่ามี View อยู่ไหม
Code (PHP)
$exists = View::exists('home.index');
Binding Data To Views
การส่งค่าจาก Controller หรือ Route ขึ้นสู่ View ก็มีหลายวิธีเลยครับ
Code (PHP)
Route::get('/', function()
{
return View::make('home')->with('name', 'James');
});
ตัวแปร $name ที่มีค่าว่า jame ก็ถูกส่งมาละครับ:
Code (PHP)
<html>
Hello, <?php echo $name; ?>.
</html>
สามารถส่งมาหลายๆตัวเลยก็ได้
Code (PHP)
View::make('home')
->with('name', 'James')
->with('votes', 25);
ส่งมาเป็นอาเรย์
Code (PHP)
View::make('home', array('name' => 'James'))
;
Nesting Views
ในเว็บเราจะมีส่วนหนึ่งอย่างเช่น Menu ที่เราต้องการแทรกไว้ทุกหน้า หรือว่าส่วนใดๆส่วนหนึ่งของ เว็บที่ต้องใช้ทุกหน้า เป็นส่วนที่อิสระจากหน้าหลักจะมีหรือไม่มีก็ได้ ใน Yii เรียก Partial ใน Cakephp เรียก Element ใน Laravel เรียก Nest ครับ
Code (PHP)
View::make('home')->nest('footer', 'partials.footer');
//Passing data to a nested view:
$view = View::make('home');
$view->nest('content', 'orders', array('orders' => $orders));
เราสามารถไปดึง View ของ Controller อื่นมายัดลง View ของอีก Controller หนึ่งได้
โดยใช้ฟังก์ชัน Render
Code (PHP)
<div class="content">
<?php echo render('user.profile'); ?>
</div>
เราสามารถใช้ partial view แสดงหลายอันได้โดยใช้ ฟัง render_each
Code (PHP)
<div class="orders">
<?php echo render_each('partials.order', $orders, 'order');
</div>
พารามิเตอร์แรกเป็นชื่อของ partial view ตัวที่สองเป็นอาเรย์ของจ้อมูล ตัวที่สามเป็นตัวแปรที่เราจะฝากค่าจากตัวที่สองไปโชบน View
Named Views
คือการทำชื่อเล่นให้ View ครับ ข้างล่างเรา กำหนดให้ layout แทน layout.default
Code (PHP)
View::name('layouts.default', 'layout');
of เป็นการเรียก ที่อยู่จริงของ layout คือ layouts.default
Code (PHP)
return View::of('layout');
สามารถแนบข้อมูลไปด้วยเลยก็ได้
Code (PHP)
return View::of('layout', array('orders' => $orders));
View Composers
เมื่อเราใช้งาน composer ทุกครั้งที่มีการเรียก View มันจะถูกเรียกขึ้นมาด้วย เราสามารถใช้มันในการทำตัวแนะนำต่างๆ เช่น แนะนำเนื้อหาที่ใกล้เคียง. โดยผนวกความสามารถนี้เข้ากับ partial view เราต้องไปสร้างไว้ที่ application/routes.php.
ลองดูตัวอย่าง
ควบคุม view ชื่อ home โดย composer
Code (PHP)
View::composer('home', function($view)
{
$view->nest('footer', 'partials.footer');
});
ถ้า home โหลดเสร็จแล้ว view ส่วน footer ก็จะตามมา
ให้ composer คุมหลายๆ view ได้นะครับ:
Code (PHP)
View::composer(array('home', 'profile'), function($view)
{
//
});
ว่างเมื่อไหร่ผมจะมาต่อ เรื่อง part 2 blade template นะครับ
part2 มาเเล้ว ::https://www.thaicreate.com/community/laravel-view-blade-template.html
|
|
|
|
|
|
|
|
By : |
taqman
|
|
Article : |
บทความเป็นการเขียนโดยสมาชิก หากมีปัญหาเรื่องลิขสิทธิ์ กรุณาแจ้งให้ทาง webmaster ทราบด้วยครับ |
|
Score Rating : |
|
|
Create Date : |
2013-05-10 |
|
Download : |
No files |
|
Sponsored Links |
|
|
|
|
|
|