好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > Laravel框架路由與MVC實例詳解

Laravel框架路由與MVC實例詳解

熱門標簽:百應電話機器人服務 青島語音外呼系統招商 揚州地圖標注app 河南電銷卡外呼系統哪家強 岳陽外呼型呼叫中心系統在哪里 昭通辦理400電話 山西探意電話機器人 騰訊外呼管理系統 山西回撥外呼系統

本文實例講述了Laravel框架路由與MVC。分享給大家供大家參考,具體如下:

1、路由

路由的作用就是將用戶的不同url請求轉發給相應的程序進行處理,laravel的路由定義在routes文件夾中,默認提供了四個路由文件,其中web.php文件定義基本頁面請求。

1.1、基本路由

最基本的路由請求是get與post請求,laravel通過Route對象來定義不同的請求方式。例如定義一個url為'req'的get請求,返回字符串‘get response':

Route::get('req',function (){
  return 'get response';
});

當我以get的方式請求http://localhost/Laravel/laravel52/public/req時,返回如下:

同理,當定義post請求時,使用Route::post(url,function(){});

1.2、多請求路由

如果希望對多種請求方式采用相同的處理,可以使用match或any:

使用match來匹配對應的請求方式,例如當以get或post請求req2時,都返回match response:

Route::match(['get','post'],'req2',function (){
  return 'match response';
});

any會匹配任意請求方式,例如以任意方式請求req3,返回any response:

Route::any('req3',function (){
  return 'any response';
});

1.3、請求參數

必選參數:當以帶參數的形式發送請求時,可以在路由中進行接收,用大括號將參數括起,用/分割,例如:

Route::get('req4/{name}/{age}', function ($name, $age) {
  return "I'm {$name},{$age} years old.";
});

以get請求時將參數傳遞,結果如下:

可選參數:以上的參數是必須的,如果缺少某一個參數就會報錯,如果希望某個參數是可選的,可以為它加一個?,并設置默認值,默認參數必須為最后一個參數,否則放中間沒法識別:

Route::get('req4/{name}/{age?}', function ($name, $age=0) {
  return "I'm {$name},{$age} years old.";
});

正則校驗:可以通過where對請求中的參數進行校驗

Route::get('req4/{name}/{age?}', function ($name, $age=0) {
  return "I'm {$name},{$age} years old.";
})->where(['name'=>'[A-Za-z]+','age'=>'[0-9]+']);

1.4、路由群組

有時我們的路由可能有多個層級,例如定義一級路由home,其下有二級路由article,comment等,這就需要將article與comment放到home這個群組中。通過數組鍵prefix為路由article添加前綴home:

Route::group(['prefix' => 'home'], function () {
  Route::get('article', function () {
    return 'home/article';
  });
});

這樣通過home/article就可以訪問到該路由了。

1.5、路由命名

有時需要給路由起個名字,需要在定義路由時使用as數組鍵來指定路由名稱。例如將路由home/comment命名為comment,在生成url與重定向時就可以使用路由的名字comment:

Route::get('home/comment',['as'=>'comment',function(){
  return route('comment');    //通過route函數生成comment對應的url
}]);

輸出為http://localhost/Laravel/laravel52/public/home/comment

2、控制器

route路由只對請求進行分配跳轉,具體的業務邏輯則需要由控制器來處理,控制器一般封裝成為一個php類。控制器的文件一般放在app/Http/Controlers文件夾下。例如新建一個LoginController類繼承自Controller,定義checkLog方法回應登錄請求,

namespace App\Http\Controllers;
class LoginController extends Controller
{
  public function checkLog($name){
    return $name.'登錄成功';
  }
}

在route.php中將login請求分配到checkLog方法:

Route::get('login/{name}','LoginController@checkLog');

同樣的,可以為控制器路由起個名字,比如將其命名為login:

Route::get('login/{name}',['uses'=>'LoginController@checkLog','as'=>'login']);

3、視圖

controller負責處理應用的邏輯,應用的顯示則由視圖View負責,這體現了MVC中不同的邏輯之間的分離。視圖一般位于/resource/views目錄下,一般一個controller文件對應一個視圖文件夾,因此我創建的視圖為:views/Login/login.blade.php。blade文件是laravel的一個模板引擎,它編譯為PHP儲存起來。它包含HTML語言,可以在其中直接使用PHP,例如login.blade.php:

!DOCTYPE Html>
html>
  head>
    title>登錄界面/title>
  /head>
  body>
    {{$name}}登錄成功
  /body>
/html>

在controller的checkLog方法中調用視圖并傳入參數:

public function checkLog($name){
  return View('Login/login',[
    "name"=>$name
  ]);
}

4、模板

在mvc中通過Models與數據庫中的表進行交互,每個數據庫對應一個Model模板。laravel并沒有定義models目錄,一般可以在app目錄下新建一個models文件夾存放模板文件。例如定義一個Student模板并指定表名與主鍵:

namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Student extends Model
{
  protected $table='student';
  protected $primaryKey='id';
}

在controller中通過Student模板查詢所有:

namespace App\Http\Controllers;
use App\Models\Student;
class Login
{
  public static function showDB(){
    $table=Student::all();
    dd($table);
  }
}

更多關于Laravel相關內容感興趣的讀者可查看本站專題:《Laravel框架入門與進階教程》、《php優秀開發框架總結》、《php面向對象程序設計入門教程》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》

希望本文所述對大家基于Laravel框架的PHP程序設計有所幫助。

您可能感興趣的文章:
  • Laravel框架路由配置總結、設置技巧大全
  • Laravel中獲取路由參數Route Parameters的五種方法示例
  • Laravel最佳分割路由文件(routes.php)的方式
  • 修改Laravel5.3中的路由文件與路徑
  • Laravel 4 初級教程之視圖、命名空間、路由
  • Laravel 5框架學習之路由、控制器和視圖簡介
  • Laravel框架模板加載,分配變量及簡單路由功能示例
  • Laravel框架路由和控制器的綁定操作方法
  • Laravel框架控制器,視圖及模型操作圖文詳解
  • laravel通過a標簽從視圖向控制器實現傳值
  • laravel框架模型、視圖與控制器簡單操作示例
  • Laravel 5框架學習之模型、控制器、視圖基礎流程

標簽:婁底 湛江 鎮江 南陽 黃南 寶雞 銅川 宜賓

巨人網絡通訊聲明:本文標題《Laravel框架路由與MVC實例詳解》,本文關鍵詞  Laravel,框架,路由,與,MVC,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Laravel框架路由與MVC實例詳解》相關的同類信息!
  • 本頁收集關于Laravel框架路由與MVC實例詳解的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 只想老老实实种点田| 黄色网站有哪些| 耽美小说高h| 国产一区二区在线|播放| 精品久久久久久中文字幕女| 小早川怜子在线AV亚洲| 国产欧美亚州第一页| 摸老师胸吃老师乳漫画视频 | 亚洲精品国产字幕一卡二卡| 福利视频app导航在线观看| 日韩永久在线观看免费视频| 绿帽子精选系列70| 伊人影院亚洲| 妺妺好紧好湿好滑好滑视频| 黑人巨大精品欧美一区二区免费 | 男女做爰猛烈叫床爽爽免费网站| 91精品国产91久久久久久久久久久久 | 久久就是精品| 乌克兰黄色片| gogo大胆无码无码免费视频| 精品人妻少妇一区二三区四虎狼人| 太粗好紧使劲舒服| 极品粉嫩軳600张美女图片| 完整的强?视频中国人| 91久久国产综合久久91| 网站视频大片www| 97视频在线观看免费视频| 多人性战交疯狂派对| 91精品国产综合久久久久久漫画| 99国产情在线视频| 浴室里强摁做开腿呻吟快新车文| videossex性糟蹋变态| 男人放进女人pp的动态图| 美女厕拍| 两男一女3p啪啪图| 国产精品大全国产精品| 美女裸体做受???游戏| 爆操小母狗| 久久香蕉国产线看观看精品蕉| 欧美贵妇vs高跟办公室| 乖女和我裸睡让我弄|