[Laravel] 02 - Route and MVC

前言


1、良心資料

  • 英文

Laravel 框架:https://laravel.com/php

 
  • 中文

輕鬆學會Laravel-基礎篇   <---- from.html

輕鬆學會Laravel-中級篇laravel

輕鬆學會Laravel-高級篇正則表達式

 

 

基本路由


1、基本思路 

  • 默認框架結構

URL --> [映射] --> 程序數據庫

app       -- Https 業務邏輯

-- Http/routes.php【返回 (1) view --> resources/views/welcome.blade.php】 bootstrap -- 框架啓動,自動加載

-- autoload.php【加載 (1) /../vendor/autoload.php】

-- app.php【實例化 (2) app and then return $app】 config -- 配置文件,such as cache. database -- 數據庫相關資源 public -- 靜態資源, such as pic. -- index.php【加載 (1) /../bootstrap/autoload.php then (2) app.php】 resources -- 視圖以及原始的資源文件,views就是mvc中的v

-- views/welcome.blade.php【顯示的首頁 (2) html內容】 storage -- 編譯後的模板文件等。 tests -- 單元測試。 vendor -- 依賴模塊

 

  • 路由示範

基礎路由,多請求路由,示範以下:bootstrap

多請求路由:mvc

Route::match 既支持get,也支持post;app

Route::any 響應全部的請求;框架

 

詳見API中文文檔:https://docs.golaravel.com/docs/5.0/routing/函數

Ref: [Node.js] 07 - Html and Http

 

 

2、URL 處理

  • 路由 '參數'

[1] Extract id in url.

Route::get('user/{id}', function($id) {
    return 'User-id-' . $id;
});

[2] Extract name? in url. sean是默認參數。【有默認參數就加了個問號】

Route::get('user/{name?}', function($name = 'sean') {
    return 'User-name-' . $name;
});

[3] 正則表達式限制路由參數。

Route::get('user/{name?}', function($name = 'sean') {
    return 'User-name-' . $name;
}) -> where('name', '[A-Za-z]+');

[4] 參數綜合起來

Route::get('user/{id}/{name?}', function($id, $name = 'sean') {
    return 'User-id-' . $id . '-name' . $name;
}) -> where(['id' => '[0-9]+', 'name', '[A-Za-z]+');

 

  • 路由 ’重定向’ 與 ‘別名’

** "重定向" 的意思是?

當用戶訪問 /a時,URL 將會被替換成 /b,而後匹配路由爲 /b.

if ($student->save()) {
  return redirect('student/index');
} else {
  return redirect()->back();
}

 

 

** 「別名」又是什麼呢?

/a 的別名是 /b,意味着,當用戶訪問 /b 時,URL 會保持爲 /b,可是路由匹配則爲 /a,就像用戶訪問 /a 同樣。【兩個URL對應一個頁面】

『別名』的功能讓你能夠自由地將 UI 結構映射到任意的 URL,而不是受限於配置的嵌套路由結構。

"member-center" 的別名爲 「center"。

顯示效果:

 

  • 路由羣組

有了層級關係。

./member/user/center就能夠訪問了。

 

  • 路由中輸出視圖

其實就是以前的 return view('welcome');

 

 

 

控制器


1、控制器關聯路由

  • 關聯方法:URL --> [映射] --> 程序

MembrConroller 裏的方法 info()的表達方式:MemberController@info

Route::get('member/info', 'MemberController@info');

Or array type:
Route::get('member/info', ['uses' => 'MemberController@info']

 

  • 路由別名

[routes.php]

 

  • 參數綁定 

[1] 打開路由,調用一個遠在另外一個文件夾的函數。

Route::any('member/{id}', ['uses' => 'MemberController@info']);]

[2] 函數在這裏,就是controller。

 

 

 

視圖


1、如何使用 view

URL --> [映射] --> 程序 --> 界面

在resource/views中,例如創建:member-info.php這個view文件。

那麼,咱們就能夠經過 return view('member-info'); 來使用。 

 

[1] 控制器 Controller 帶有參數:name & age。

 

[2] 視圖 View 顯示參數內容。 

 

 

 

模型


1、新建一個模型 

在app目錄下新建:Member.php

 

 

2、如何調用模型

由於是靜態方法,因此能夠直接在 Controller 中調用 Model方法。

相關文章
相關標籤/搜索