Enviar búsqueda
Cargar
使用 Controller
•
7 recomendaciones
•
34,343 vistas
Shengyou Fan
Seguir
在 2015 年 7 月至新北市樹林國小舉辦 Laravel 工作坊,讓參與的學員在 30 個小時內學會使用 Laravel 建置一個具 Open ID 認證功能的網路應用程式。
Leer menos
Leer más
Tecnología
Denunciar
Compartir
Denunciar
Compartir
1 de 25
Descargar ahora
Descargar para leer sin conexión
Recomendados
Eloquent ORM
Eloquent ORM
Shengyou Fan
PHP 語法基礎與物件導向
PHP 語法基礎與物件導向
Shengyou Fan
Route 路由控制
Route 路由控制
Shengyou Fan
使用者認證
使用者認證
Shengyou Fan
Composer 套件管理
Composer 套件管理
Shengyou Fan
啟動 Laravel 與環境設定
啟動 Laravel 與環境設定
Shengyou Fan
PHPCon China 2016 - 從學徒變大師:談 Laravel 框架擴充與套件開發
PHPCon China 2016 - 從學徒變大師:談 Laravel 框架擴充與套件開發
Shengyou Fan
[Community Open Camp] 給 PHP 開發者的 VS Code 指南
[Community Open Camp] 給 PHP 開發者的 VS Code 指南
Shengyou Fan
Recomendados
Eloquent ORM
Eloquent ORM
Shengyou Fan
PHP 語法基礎與物件導向
PHP 語法基礎與物件導向
Shengyou Fan
Route 路由控制
Route 路由控制
Shengyou Fan
使用者認證
使用者認證
Shengyou Fan
Composer 套件管理
Composer 套件管理
Shengyou Fan
啟動 Laravel 與環境設定
啟動 Laravel 與環境設定
Shengyou Fan
PHPCon China 2016 - 從學徒變大師:談 Laravel 框架擴充與套件開發
PHPCon China 2016 - 從學徒變大師:談 Laravel 框架擴充與套件開發
Shengyou Fan
[Community Open Camp] 給 PHP 開發者的 VS Code 指南
[Community Open Camp] 給 PHP 開發者的 VS Code 指南
Shengyou Fan
[PHP 也有 Day #64] PHP 升級指南
[PHP 也有 Day #64] PHP 升級指南
Shengyou Fan
使用 laravel 的前與後
使用 laravel 的前與後
Shengyou Fan
Fetch API Talk
Fetch API Talk
Chiamaka Nwolisa
[COSCUP 2022] 讓黑畫面再次偉大 - 用 PHP 寫 CLI 工具
[COSCUP 2022] 讓黑畫面再次偉大 - 用 PHP 寫 CLI 工具
Shengyou Fan
Mirage For Beginners
Mirage For Beginners
Wilson Su
導入 Flutter 前你應該知道的事
導入 Flutter 前你應該知道的事
Weizhong Yang
An Intro into webpack
An Intro into webpack
Squash Apps Pvt Ltd
From Generator to Fiber the Road to Coroutine in PHP
From Generator to Fiber the Road to Coroutine in PHP
Albert Chen
Composer 從入門到實戰
Composer 從入門到實戰
Shengyou Fan
Toolbox for Selenium Tests in Java: WebDriverManager and Selenium-Jupiter
Toolbox for Selenium Tests in Java: WebDriverManager and Selenium-Jupiter
Boni García
Going to Mars with Groovy Domain-Specific Languages
Going to Mars with Groovy Domain-Specific Languages
Guillaume Laforge
[JCConf 2022] Compose for Desktop - 開發桌面軟體的新選擇
[JCConf 2022] Compose for Desktop - 開發桌面軟體的新選擇
Shengyou Fan
Laravel
Laravel
Dyuti Islam
An introduction to Vue.js
An introduction to Vue.js
Javier Lafora Rey
LaravelConf Taiwan 2017 單頁面應用與前後端分離開發
LaravelConf Taiwan 2017 單頁面應用與前後端分離開發
俊仁 陳
AngularJS $Provide Service
AngularJS $Provide Service
Eyal Vardi
Code Generation idioms with Xtend
Code Generation idioms with Xtend
Holger Schill
Asp.net mvc filters
Asp.net mvc filters
Eyal Vardi
A Hands-on Introduction to Docker
A Hands-on Introduction to Docker
CodeOps Technologies LLP
Introduction à JavaScript
Introduction à JavaScript
Abdoulaye Dieng
CRUD 綜合運用
CRUD 綜合運用
Shengyou Fan
Migrations 與 Schema 操作
Migrations 與 Schema 操作
Shengyou Fan
Más contenido relacionado
La actualidad más candente
[PHP 也有 Day #64] PHP 升級指南
[PHP 也有 Day #64] PHP 升級指南
Shengyou Fan
使用 laravel 的前與後
使用 laravel 的前與後
Shengyou Fan
Fetch API Talk
Fetch API Talk
Chiamaka Nwolisa
[COSCUP 2022] 讓黑畫面再次偉大 - 用 PHP 寫 CLI 工具
[COSCUP 2022] 讓黑畫面再次偉大 - 用 PHP 寫 CLI 工具
Shengyou Fan
Mirage For Beginners
Mirage For Beginners
Wilson Su
導入 Flutter 前你應該知道的事
導入 Flutter 前你應該知道的事
Weizhong Yang
An Intro into webpack
An Intro into webpack
Squash Apps Pvt Ltd
From Generator to Fiber the Road to Coroutine in PHP
From Generator to Fiber the Road to Coroutine in PHP
Albert Chen
Composer 從入門到實戰
Composer 從入門到實戰
Shengyou Fan
Toolbox for Selenium Tests in Java: WebDriverManager and Selenium-Jupiter
Toolbox for Selenium Tests in Java: WebDriverManager and Selenium-Jupiter
Boni García
Going to Mars with Groovy Domain-Specific Languages
Going to Mars with Groovy Domain-Specific Languages
Guillaume Laforge
[JCConf 2022] Compose for Desktop - 開發桌面軟體的新選擇
[JCConf 2022] Compose for Desktop - 開發桌面軟體的新選擇
Shengyou Fan
Laravel
Laravel
Dyuti Islam
An introduction to Vue.js
An introduction to Vue.js
Javier Lafora Rey
LaravelConf Taiwan 2017 單頁面應用與前後端分離開發
LaravelConf Taiwan 2017 單頁面應用與前後端分離開發
俊仁 陳
AngularJS $Provide Service
AngularJS $Provide Service
Eyal Vardi
Code Generation idioms with Xtend
Code Generation idioms with Xtend
Holger Schill
Asp.net mvc filters
Asp.net mvc filters
Eyal Vardi
A Hands-on Introduction to Docker
A Hands-on Introduction to Docker
CodeOps Technologies LLP
Introduction à JavaScript
Introduction à JavaScript
Abdoulaye Dieng
La actualidad más candente
(20)
[PHP 也有 Day #64] PHP 升級指南
[PHP 也有 Day #64] PHP 升級指南
使用 laravel 的前與後
使用 laravel 的前與後
Fetch API Talk
Fetch API Talk
[COSCUP 2022] 讓黑畫面再次偉大 - 用 PHP 寫 CLI 工具
[COSCUP 2022] 讓黑畫面再次偉大 - 用 PHP 寫 CLI 工具
Mirage For Beginners
Mirage For Beginners
導入 Flutter 前你應該知道的事
導入 Flutter 前你應該知道的事
An Intro into webpack
An Intro into webpack
From Generator to Fiber the Road to Coroutine in PHP
From Generator to Fiber the Road to Coroutine in PHP
Composer 從入門到實戰
Composer 從入門到實戰
Toolbox for Selenium Tests in Java: WebDriverManager and Selenium-Jupiter
Toolbox for Selenium Tests in Java: WebDriverManager and Selenium-Jupiter
Going to Mars with Groovy Domain-Specific Languages
Going to Mars with Groovy Domain-Specific Languages
[JCConf 2022] Compose for Desktop - 開發桌面軟體的新選擇
[JCConf 2022] Compose for Desktop - 開發桌面軟體的新選擇
Laravel
Laravel
An introduction to Vue.js
An introduction to Vue.js
LaravelConf Taiwan 2017 單頁面應用與前後端分離開發
LaravelConf Taiwan 2017 單頁面應用與前後端分離開發
AngularJS $Provide Service
AngularJS $Provide Service
Code Generation idioms with Xtend
Code Generation idioms with Xtend
Asp.net mvc filters
Asp.net mvc filters
A Hands-on Introduction to Docker
A Hands-on Introduction to Docker
Introduction à JavaScript
Introduction à JavaScript
Destacado
CRUD 綜合運用
CRUD 綜合運用
Shengyou Fan
Migrations 與 Schema 操作
Migrations 與 Schema 操作
Shengyou Fan
Model 設定與 Seeding
Model 設定與 Seeding
Shengyou Fan
驗證與訊息
驗證與訊息
Shengyou Fan
整合 Open ID
整合 Open ID
Shengyou Fan
View 與 Blade 樣板引擎
View 與 Blade 樣板引擎
Shengyou Fan
開發環境建置
開發環境建置
Shengyou Fan
Package 安裝與使用
Package 安裝與使用
Shengyou Fan
工作坊總結
工作坊總結
Shengyou Fan
工作坊簡介
工作坊簡介
Shengyou Fan
Route 機制
Route 機制
Shengyou Fan
開發環境建置
開發環境建置
Shengyou Fan
課程簡介
課程簡介
Shengyou Fan
Package安裝與使用
Package安裝與使用
Shengyou Fan
開發環境建置
開發環境建置
Shengyou Fan
工作坊簡介
工作坊簡介
Shengyou Fan
使用 Eloquent ORM
使用 Eloquent ORM
Shengyou Fan
專案啟動與環境設定
專案啟動與環境設定
Shengyou Fan
Migrations 與 Schema操作
Migrations 與 Schema操作
Shengyou Fan
Route路由控制
Route路由控制
Shengyou Fan
Destacado
(20)
CRUD 綜合運用
CRUD 綜合運用
Migrations 與 Schema 操作
Migrations 與 Schema 操作
Model 設定與 Seeding
Model 設定與 Seeding
驗證與訊息
驗證與訊息
整合 Open ID
整合 Open ID
View 與 Blade 樣板引擎
View 與 Blade 樣板引擎
開發環境建置
開發環境建置
Package 安裝與使用
Package 安裝與使用
工作坊總結
工作坊總結
工作坊簡介
工作坊簡介
Route 機制
Route 機制
開發環境建置
開發環境建置
課程簡介
課程簡介
Package安裝與使用
Package安裝與使用
開發環境建置
開發環境建置
工作坊簡介
工作坊簡介
使用 Eloquent ORM
使用 Eloquent ORM
專案啟動與環境設定
專案啟動與環境設定
Migrations 與 Schema操作
Migrations 與 Schema操作
Route路由控制
Route路由控制
Similar a 使用 Controller
使用 Controller
使用 Controller
Shengyou Fan
View 與 Blade 樣板引擎
View 與 Blade 樣板引擎
Shengyou Fan
Spring mvc
Spring mvc
pepsixp
Vlog02 [eng sub]什麼是controller和如何在asp.net核心中創建controller?-what is controller ...
Vlog02 [eng sub]什麼是controller和如何在asp.net核心中創建controller?-what is controller ...
SernHao TV
How to ASP.NET MVC4
How to ASP.NET MVC4
Daniel Chou
View 與 Blade 樣板引擎
View 與 Blade 樣板引擎
Shengyou Fan
Real World ASP.NET MVC
Real World ASP.NET MVC
jeffz
twMVC#01 | ASP.NET MVC 的第一次親密接觸
twMVC#01 | ASP.NET MVC 的第一次親密接觸
twMVC
Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式
Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式
Justin Lin
Introduction to ASP.NET MVC and MVC 5 Features
Introduction to ASP.NET MVC and MVC 5 Features
Jeff Chu
Rest Ruby On Rails
Rest Ruby On Rails
shaokun
與 Asp.net mvc 的第一次親密接觸 - twMVC#1
與 Asp.net mvc 的第一次親密接觸 - twMVC#1
twMVC
Uliweb cheat sheet_0.1
Uliweb cheat sheet_0.1
modou li
Asp.net mvc網站的從無到有
Asp.net mvc網站的從無到有
Wade Huang
2015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練3
2015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練3
Duran Hsieh
RESTful
RESTful
PingLun Liao
Introduction to MVC of CodeIgniter 2.1.x
Introduction to MVC of CodeIgniter 2.1.x
Bo-Yi Wu
Asp.net mvc 培训
Asp.net mvc 培训
lotusprince
Mvc training
Mvc training
xioxu
OpenWebSchool - 11 - CodeIgniter
OpenWebSchool - 11 - CodeIgniter
Hung-yu Lin
Similar a 使用 Controller
(20)
使用 Controller
使用 Controller
View 與 Blade 樣板引擎
View 與 Blade 樣板引擎
Spring mvc
Spring mvc
Vlog02 [eng sub]什麼是controller和如何在asp.net核心中創建controller?-what is controller ...
Vlog02 [eng sub]什麼是controller和如何在asp.net核心中創建controller?-what is controller ...
How to ASP.NET MVC4
How to ASP.NET MVC4
View 與 Blade 樣板引擎
View 與 Blade 樣板引擎
Real World ASP.NET MVC
Real World ASP.NET MVC
twMVC#01 | ASP.NET MVC 的第一次親密接觸
twMVC#01 | ASP.NET MVC 的第一次親密接觸
Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式
Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式
Introduction to ASP.NET MVC and MVC 5 Features
Introduction to ASP.NET MVC and MVC 5 Features
Rest Ruby On Rails
Rest Ruby On Rails
與 Asp.net mvc 的第一次親密接觸 - twMVC#1
與 Asp.net mvc 的第一次親密接觸 - twMVC#1
Uliweb cheat sheet_0.1
Uliweb cheat sheet_0.1
Asp.net mvc網站的從無到有
Asp.net mvc網站的從無到有
2015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練3
2015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練3
RESTful
RESTful
Introduction to MVC of CodeIgniter 2.1.x
Introduction to MVC of CodeIgniter 2.1.x
Asp.net mvc 培训
Asp.net mvc 培训
Mvc training
Mvc training
OpenWebSchool - 11 - CodeIgniter
OpenWebSchool - 11 - CodeIgniter
Más de Shengyou Fan
[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式
[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式
Shengyou Fan
[JCConf 2023] 從 Kotlin Multiplatform 到 Compose Multiplatform:在多平台間輕鬆共用業務邏輯與 U...
[JCConf 2023] 從 Kotlin Multiplatform 到 Compose Multiplatform:在多平台間輕鬆共用業務邏輯與 U...
Shengyou Fan
[Kotlin 讀書會第五梯次] 深入淺出 Kotlin 第一章導讀
[Kotlin 讀書會第五梯次] 深入淺出 Kotlin 第一章導讀
Shengyou Fan
[WebConf Taiwan 2023] 一份 Zend Engine 外帶!透過 Micro 讓一次打包、多處運行變得可能
[WebConf Taiwan 2023] 一份 Zend Engine 外帶!透過 Micro 讓一次打包、多處運行變得可能
Shengyou Fan
How I make a podcast website using serverless technology in 2023
How I make a podcast website using serverless technology in 2023
Shengyou Fan
[Effective Kotlin 讀書會] 第八章 Efficient collection processing 導讀
[Effective Kotlin 讀書會] 第八章 Efficient collection processing 導讀
Shengyou Fan
[MOPCON 2022] 以 Kotlin Multiplatform 制霸全平台
[MOPCON 2022] 以 Kotlin Multiplatform 制霸全平台
Shengyou Fan
Using the Exposed SQL Framework to Manage Your Database
Using the Exposed SQL Framework to Manage Your Database
Shengyou Fan
[COSCUP 2022] Kotlin Collection 遊樂園
[COSCUP 2022] Kotlin Collection 遊樂園
Shengyou Fan
初探 Kotlin Multiplatform
初探 Kotlin Multiplatform
Shengyou Fan
簡化 JVM 上雲 - 透過 Azure Spring Cloud 提升開發、發佈及服務監控效率
簡化 JVM 上雲 - 透過 Azure Spring Cloud 提升開發、發佈及服務監控效率
Shengyou Fan
以 Kotlin Multiplatform Mobile (KMM) 開發跨平台行動應用
以 Kotlin Multiplatform Mobile (KMM) 開發跨平台行動應用
Shengyou Fan
Composer 經典食譜
Composer 經典食譜
Shengyou Fan
老派浪漫:用 Kotlin 寫 Command Line 工具
老派浪漫:用 Kotlin 寫 Command Line 工具
Shengyou Fan
[Kotlin Serverless 工作坊] 單元 4 - 實作 RSS Aggregator
[Kotlin Serverless 工作坊] 單元 4 - 實作 RSS Aggregator
Shengyou Fan
[Kotlin Serverless 工作坊] 單元 3 - 實作 JSON API
[Kotlin Serverless 工作坊] 單元 3 - 實作 JSON API
Shengyou Fan
[Kotlin Serverless 工作坊] 單元 2 - 簡介 Kotlin Serverless
[Kotlin Serverless 工作坊] 單元 2 - 簡介 Kotlin Serverless
Shengyou Fan
[Kotlin Serverless 工作坊] 單元 1 - 開發環境建置
[Kotlin Serverless 工作坊] 單元 1 - 開發環境建置
Shengyou Fan
用 Kotlin 打造讀書會小幫手
用 Kotlin 打造讀書會小幫手
Shengyou Fan
Kotlin 讀書會第三梯次第一章
Kotlin 讀書會第三梯次第一章
Shengyou Fan
Más de Shengyou Fan
(20)
[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式
[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式
[JCConf 2023] 從 Kotlin Multiplatform 到 Compose Multiplatform:在多平台間輕鬆共用業務邏輯與 U...
[JCConf 2023] 從 Kotlin Multiplatform 到 Compose Multiplatform:在多平台間輕鬆共用業務邏輯與 U...
[Kotlin 讀書會第五梯次] 深入淺出 Kotlin 第一章導讀
[Kotlin 讀書會第五梯次] 深入淺出 Kotlin 第一章導讀
[WebConf Taiwan 2023] 一份 Zend Engine 外帶!透過 Micro 讓一次打包、多處運行變得可能
[WebConf Taiwan 2023] 一份 Zend Engine 外帶!透過 Micro 讓一次打包、多處運行變得可能
How I make a podcast website using serverless technology in 2023
How I make a podcast website using serverless technology in 2023
[Effective Kotlin 讀書會] 第八章 Efficient collection processing 導讀
[Effective Kotlin 讀書會] 第八章 Efficient collection processing 導讀
[MOPCON 2022] 以 Kotlin Multiplatform 制霸全平台
[MOPCON 2022] 以 Kotlin Multiplatform 制霸全平台
Using the Exposed SQL Framework to Manage Your Database
Using the Exposed SQL Framework to Manage Your Database
[COSCUP 2022] Kotlin Collection 遊樂園
[COSCUP 2022] Kotlin Collection 遊樂園
初探 Kotlin Multiplatform
初探 Kotlin Multiplatform
簡化 JVM 上雲 - 透過 Azure Spring Cloud 提升開發、發佈及服務監控效率
簡化 JVM 上雲 - 透過 Azure Spring Cloud 提升開發、發佈及服務監控效率
以 Kotlin Multiplatform Mobile (KMM) 開發跨平台行動應用
以 Kotlin Multiplatform Mobile (KMM) 開發跨平台行動應用
Composer 經典食譜
Composer 經典食譜
老派浪漫:用 Kotlin 寫 Command Line 工具
老派浪漫:用 Kotlin 寫 Command Line 工具
[Kotlin Serverless 工作坊] 單元 4 - 實作 RSS Aggregator
[Kotlin Serverless 工作坊] 單元 4 - 實作 RSS Aggregator
[Kotlin Serverless 工作坊] 單元 3 - 實作 JSON API
[Kotlin Serverless 工作坊] 單元 3 - 實作 JSON API
[Kotlin Serverless 工作坊] 單元 2 - 簡介 Kotlin Serverless
[Kotlin Serverless 工作坊] 單元 2 - 簡介 Kotlin Serverless
[Kotlin Serverless 工作坊] 單元 1 - 開發環境建置
[Kotlin Serverless 工作坊] 單元 1 - 開發環境建置
用 Kotlin 打造讀書會小幫手
用 Kotlin 打造讀書會小幫手
Kotlin 讀書會第三梯次第一章
Kotlin 讀書會第三梯次第一章
使用 Controller
1.
使⽤用 Controller 范聖佑 Shengyou
Fan 新北市樹林國⼩小 (2015/07/09) 適 ⽤用 5.1 版
2.
單元主題 • 什麼是 Controller? •
⺫⽬目前實作⽅方式有什麼問題?Controller 可以幫助我們 什麼? • 如何透過 artisan 產⽣生 Controller 類別? • Controller 類別如何依照 RESTful 慣例實作各⽅方法 • ⽰示範將⼯工作坊實作專案裡,原本寫在 routes.php 裡 的動作搬⾄至對應的 Controller 類別內
3.
Controller 簡介
4.
Laravel 的 MVC
分⼯工 Route Controller ModelView index.php Server Request Response Client app init ★ 參考說明:http://laravel-recipes.com/recipes/52/understanding-the-request-lifecycle
5.
在有 Controller 之前… •
截⾄至⺫⽬目前的⽰示範,我們把所有應⽤用程式邏輯都寫在 app/Http/routes.php 裡,雖然可以正常運作,但會讓 routes.php 的內容⼀一直⻑⾧長、⼀一直⻑⾧長… • 各⾴頁⾯面的程式邏輯沒有清楚的分類,若是其他⼈人接 ⼿手時,也很難找出整個應⽤用程式的運⾏行脈絡,這樣 寫下去程式遲早難以維護… • 總結來說,就是⺫⽬目前的範例只⽤用到 M 及V,該是 C 介⼊入的時候了!
6.
什麼是 MVC 的
Controller? • MVC 設計架構裡,M 代表 Model 負責處理資料;V 代表View 負責顯⽰示⾴頁⾯面;C 代表 Controller 負責控 制 M 及V 間的溝通並回傳結果 • 在此架構設計下,Controller 的功能就是負責控制 M 及V,也就是接受來⾃自 Route 的指令,將所需要顯⽰示 的資料和⾴頁⾯面整理好回傳。也可以思考成將動作分 類的⼀一種⽅方式 • 如此即可讓商業邏輯 (M)、顯⽰示 (V) 與程式控制 (C) 三者獨⽴立開來,彼此分⼯工、互相合作
7.
Laravel 的 Controller
機制 • 在 Laravel 的 app/Http/routes.php 裡,可以分別將不 同的 Route 動作指定給不同的 Controller 來處理, ⽽而每⼀一個 Controller 內也可以有不同的⽅方法,處理 來⾃自不同 Route 傳來的請求 • ⼀一般來說,Controller 內的動作也有慣例,即依照 RESTful 的動作名稱來做對應,讓不同的 Controller 及各 Controller 內的動作都有規則可循。除了可以 依賴 artisan 產⽣生程式碼外,也可提升開發速度
8.
產⽣生 Controller ★ 參考⽂文件:http://laravel.com/docs/5.1/controllers
9.
產⽣生 Controller 類別 •
artisan 內建就有幫我們產⽣生 Controller 的指令, 直接呼叫 make:controller 即可 • 預設產⽣生出來的 Controller 就⽀支援 RESTful 的設計, 若要產⽣生出「空⽩白 (plain) 」的 Controller 則要額外 下參數
10.
$ [php] artisan
make:controller {name} 產⽣生 controller 檔案
11.
artisan make:controller • 透過
artisan 產⽣生 Controller 類別 - artisan 會依照給予的名稱,產⽣生類別檔案 - -‐-‐plain 預設指令會⾃自動在 Controller 類別裡產⽣生 對應的 RESTful 的各種⽅方法,若不希望⾃自動產⽣生的 話,可加上這個參數 • 範例: $ php artisan make:controller PostsController $ php artisan make:controller PostsController -‐-‐plain
12.
產⽣生 Controller 檔案 使⽤用
artisan 產⽣生 Controller 檔案
13.
命名與指令慣例 • 雖然 Laravel
沒有強制規定,但⼀一般慣例會將 Controller 以 {⼤大駝峰、資源複數名稱}Controller 來 命名,如 PostsController • 預設 Controller 檔案會放置在 app/Http/Controllers/ 資料夾底下 • 假如要變更 Controller 檔案的放置位置,別忘了要 ⼀一併更改 namespace
14.
撰寫 Controller 內容
15.
Controller 結構 • Laravel
的 Controller 會先繼承⾃自 BaseController (IlluminateRoutingController) 以繼承⼤大多 數的 Controller 功能成 AppHttpControllersController.php • ⽽而產⽣生出來的每⼀一個 Controller ⽽而其⼜又繼承⾃自 AppHttpControllersController.php 若是在 應⽤用程式層級需要有共同的屬性與⽅方法時,可以統 ⼀一集中寫在這裡,讓其他⼦子 Controller 可以透過繼 承就有相同的能⼒力 • 各 Controller 再依 RESTful 慣例實作各⽅方法的內容
16.
RESTful Controller 範例
17.
RESTful 動作對應 • Laravel
的 RESTful Controler 動作對應依以下表格: 動詞 路徑 動作 名稱 GET /resource index resource.index GET /resource/create create resource.create POST /resource store resource.store GET /resource/{id} show resource.show GET /resource/{id}/edit edit resource.edit PUT/PATCH /resource/{id} update resource.update DELETE /resource/{id} destroy resource.destroy
18.
設定 Route • 在
Route 裡設定將請求轉給 Controller@action, 並依照 RESTful 慣例為 Route 命名 • Route 命名慣例:resources.verb // app/Http/routes.php Route::get('posts', ['as' => 'posts.index', 'uses' => 'PostsController@index']); Route::get('posts/create', ['as' => 'posts.create', 'uses' => 'PostsController@create'); Route::get('posts/{id}', ['as' => 'posts.show', 'uses' => 'PostsController@show']); Route::get('posts/{id}/edit', ['as' => 'posts.edit', 'uses' => 'PostsController@edit']);
19.
將查詢結果送到View • 在 Controller
裡把該⾴頁要顯⽰示的資料⽤用 Model 查詢 出來,並送到Views 裡 // app/Http/Controllers/PostsController.php public function index() { $posts = AppPost::all(); $data = compact('posts'); return view('posts.index', $data); } public function show($id) { $post = AppPost::find($id); $data = compact('post'); return view('posts.show', $data); }
20.
在View 裡顯⽰示 Model
資料 • 當 Controller 把資料準備好送到View 後,在View 裡 就可以直接取得 Model 或 Collection 來顯⽰示資料 // resources/views/posts/index.blade.php // $posts 是 Collection // $post 是 Model @foreach($posts as $post) <h2>{{ $post-‐>title }}</h2> <h3>{{ $post-‐>sub_title }}</h3> <p>{!! $post-‐>content !!}</p> @endforeach // resources/views/posts/show.blade.php // $post 是 Model <h1>{{ $post-‐>title }}</h1> <h2>{{ $post-‐>sub_title }}</h2> <p>{!! $post-‐>content !!}</p>
21.
實作專案 Controller
22.
產⽣生專案所需 Controller • 依專案需求建⽴立各
Controller • 把 app/Http/routes.php 裡的邏輯搬到對應的 Controller • ⽤用 Model 將資料從資料庫查詢出來,在 Controller 裡把查詢結果傳到View 做顯⽰示 • 測試所有⾴頁⾯面是否正確顯⽰示
23.
存檔點 • 試著把現在已經可以運作的程式碼加⼊入版本控制內 • 流程提醒: -
working directory > staging area > commit
24.
單元總結 • 在這個單元裡我們學到了些什麼? - MVC
裡的 Controller - 使⽤用 artisan 產⽣生 Controller 類別 - 依照 RESTful 慣例實作 Controller 裡的各⽅方法 - 依照 RESTful 慣例將 Route 與 Controller 接起來 - 實作專案所需的 Controller,並整理 Route 設定
25.
Q & A 歡迎提問討論
Descargar ahora