iT邦幫忙

2023 iThome 鐵人賽

DAY 16
0

搭配服用文件:
Laravel: View
Laravel: Controller

把資料傳到View上,第1式:基本式

好了~我們要把資料傳到View上,
來到我們的web.php:

Route::get('/', function () {
    return view('index', ['user_name' => 'Rachel']);
});

index.blade.php 裡面,就像vue語法,使用鬍子刮鬍,並將varible加上星號就可

我的名字是 {{ $user_name }}

可以用->with寫法做串連:

Route::get('/', function () {
    return view('index')
        ->with('name', 'Rachel')
        ->with('age', 'forever 18');
});

把資料傳到View上,第2式:直接使用DB

我們也可以使用Laravel Facades裡的DB

use Illuminate\Support\Facades\DB; 

Route::get('/', function () {
    return view('index', ['users' => DB::table('career_users')->get()]);
});

什麼是Facades?
Facades是一種靜態介面,我們可以透過Laravel的Facades來取用Laravel的功能
參考:Laravel道場:Facades & [Design Pattern] Facade 門面模式

把資料傳到View上,第3式:Controller

但要是我們要傳的資料變得很複雜怎麼辦咧?
這時候我們就需要Controller

Controller可以幫我們處理瀏覽器發出的請求。
先來php artisan make:controller {你的Controller名稱}

然後就看到 app>Http>Controllers>HomeController.php建立好了。
加上一個showIndex function, 並使用Model引入我們的資料,
CareerUser::all()表示查找所有資料。

下面雖然只是簡單使用了Model,如果要多作任何變化,就在Controller裡面進行囉!

DB->Model->Controller(邏輯放這邊)->routes

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\CareerUser; //別忘了引入我們的Model
use Illuminate\View\View; //記得引入

class HomeController extends Controller
{
     public function showIndex(): View {
        return view('index', ['users' => CareerUser::all()]);
    }
}

routes>web.php改成使用controller:

use App\Http\Controllers\HomeController; //也別忘了引用

Route::get('/', [HomeController::class, 'showIndex']); //前面指定controller,後面是我們使用的function

而在blade上就直接使用我們的變數

所有名單:{{ $users }}

render出我們資料的Array:
https://ithelp.ithome.com.tw/upload/images/20230926/20140247dASKwfl5w9.png

以上!

下一篇來看看怎麼在blade裡面玩轉資料!


上一篇
Laravel: Model 玩轉資料庫&資料庫設計:ORM-Day14
下一篇
Laravel: Blade裡的命令式-Day16
系列文
前輩說Laravel不難,好啊那就1人前後端試試看啊31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言