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','MemberController@info');
//或者
Route::get('member/info', ['uses' => 'MemberController@info','as'=>'m']);
// 设置参数 和 别名 和 限制参数
Route::get('mem/{id}', ['uses' => 'MemberController@id'])->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' => 'MemberController@info','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'
}
}