laravel5.2路由,控制器,檢視,模型
阿新 • • 發佈:2019-01-11
laravel5.2路由,控制器,檢視,模型
1 路由(App\Http\routes.php)
<?php Route::get('/', function () { return view('welcome'); }); // 普通路由 http://127.0.0.1:8082/laravel5.2/public/user Route::get('user',function(){ return 'user'; }); // 指定多種請求 Route::match(['get','post'],'user',function(){ return 'user'; }); //所有請求 Route::any('foo', function () { return 'any'; }); // 路由引數 http://127.0.0.1:8082/laravel5.2/public/name Route::get('name/{id}',function($id){ return $id; }); // 可選引數 限制引數where http://127.0.0.1:8082/laravel5.2/public/name/1 // 有時候可能需要指定可選的路由引數,這可以通過在引數名後加一個 ? 標記來實現,這種情況下需要給相應的變數指定預設值: Route::get('name/{id?}',function($id=1){ return $id; })->where('id','[0-9]'); // 路由別名 http://127.0.0.1:8082/laravel5.2/public/user/1 // 命名路由為生成 URL 或重定向提供了便利,在定義路由時使用陣列鍵 as 指定路由名稱 Route::get('user/id',['as' => 'pro',function(){ return Route('pro'); //會輸出 http://127.0.0.1:8082/laravel5.2/public/user/id }]); // 路由群組 http://127.0.0.1:8082/laravel5.2/public/admin/a Route::group(['prefix' => 'admin'], function () { // 路由a路由b都加了個字首 admin Route::get('a', function () { return 'a'; }); Route::get('b', function () { return 'b'; }); });
2 控制器 namespace App\Http\Controllers;
路由裡繫結控制器/方法
routes.php:
// --- 控制器與路由 ---
// Route::get('member/info','[email protected]');
//或者
Route::get('member/info', ['uses' => '[email protected]','as'=>'m']);
// 設定引數 和 別名 和 限制引數
Route::get('mem/{id}', ['uses' => '[email protected] '])->where('id','[0-9]+');
MemberController.php
<?php namespace App\Http\Controllers; use App\Http\Controllers\Controller; class MemberController extends Controller{ public function info(){ return route('m'); //http://127.0.0.1:8082/laravel5.2/public/member/info } public function id($id){ return '使用者id:'.$id; } }
3 檢視
檢視的地址在App\resources\views下,可以自定義資料夾
路由裡直接輸出檢視
routes.php:
//路由中出檢視
Route::get('view',function(){
return view('welcome'); // App\resources\views\welcome.blade.php
});
控制器裡輸出檢視(路由裡繫結控制器/方法,在控制器/方法裡輸出檢視)
先在路由裡繫結控制器/方法:
routes.php:
Route::get('member/info', ['uses' => '[email protected]','as'=>'m']);
再在控制器裡輸出檢視
MemberController.php:
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use App\Member;
class MemberController extends Controller{
public function info(){
//輸出檢視檔案 App\resources\views\info.blade.php 以及註冊兩個變數
return view('member/info',['name'=>'su','age'=>18]);
}
}
檢視檔案輸出變數
info.blade.php:
{{$name}}
{{$age}}
4 模型 namespace App;
地址在:App下
App\Member.php:
<?php
namespace App;
use Illuminate\database\Eloquent\Model;
class Member extends Model{
public function m(){
return 'member';
}
}
通過控制器呼叫模型裡的方法
MemberController.php:
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use App\Member; //引入模型類的名稱空間
class MemberController extends Controller{
public function info(){
$member = new Member();
echo $member->m(); //'member'
}
}