上次我們弄了靜態頁面,也連上資料庫了
雖然現在還沒有資料
但是如果拿到資料我們要做什麼呢?
所以我們先假設已經取得到資料
我們有三種方式把資料傳遞到 view
先打開上次的
\helloLaravel\routes\web.php
這就是MVC的 controller
我們這邊用了兩個方法
一個是在當初 return view 的時候,第一個變數是指定view檔案
第二個選填的參數可以作為傳給 view 的變數
然後我們就可以在 view 裡面呼叫該變數!
第二個方法則是使用 with 前面的是 key,後面是 value
可以在 wiith 後面再 with 再 with
第三種方式在 Laravel 專案中比較常見,因為擴充性較佳
使用PHP內建的 compact() 函式,可以把幾個變數組成陣列回傳
如此我們的 view 就可以使用剛剛的變數
而Laravel的 view 使用自己的 blade 模板,其中可以像原生一樣使用 PHP 語法
同時也有些便捷的用法
例如
?>
可以寫成
用 @ 代替 php tag 並且用 {{}} 取代攏長的 echo
以上就是從 controller 傳送資料到 view 並且使用的方法
雖然現在還沒有資料
但是如果拿到資料我們要做什麼呢?
所以我們先假設已經取得到資料
我們有三種方式把資料傳遞到 view
先打開上次的
\helloLaravel\routes\web.php
這就是MVC的 controller
Route::get('about', function () {
return view('about',['github' => 'ray247k', 'project'=> 'helloLaravel'])
->with('skill', ['PHP', 'docker', 'nginx']);
});
我們這邊用了兩個方法
一個是在當初 return view 的時候,第一個變數是指定view檔案
第二個選填的參數可以作為傳給 view 的變數
然後我們就可以在 view 裡面呼叫該變數!
第二個方法則是使用 with 前面的是 key,後面是 value
可以在 wiith 後面再 with 再 with
第三種方式在 Laravel 專案中比較常見,因為擴充性較佳
使用PHP內建的 compact() 函式,可以把幾個變數組成陣列回傳
$data = ['name' => 'ray','age' => 25];
$title = '自我介紹';
return view('about', compact('data', 'title'));
如此我們的 view 就可以使用剛剛的變數
而Laravel的 view 使用自己的 blade 模板,其中可以像原生一樣使用 PHP 語法
同時也有些便捷的用法
例如
<?php
foreach ($skill as $skill)
{
echo "<p>" . $skill . "</p>"
}
?>
可以寫成
@foreach($skill as $skill)
<p>{{ $skill }}</p>
@endforeach
用 @ 代替 php tag 並且用 {{}} 取代攏長的 echo
以上就是從 controller 傳送資料到 view 並且使用的方法
留言
張貼留言