上次说到了子域名路由,这回从命名空间前缀说起
命名空间前缀
通过使用路由组命名空间前缀,就可以避免在群组内使用很长的控制器进行引用,如
API/ControllerA@index
API/ControllerB@index
为了避免这样的长控制器引用,可以使用路由组命名空间前缀
//App\Http\Controllers\ControllerA
Route::get('/', 'ControllerA@index');
Route::group(['namespace' => 'API'],function(){
// App\Http\Controllers\API\ControllerB
Route::get('api/','ControllerB@index');
});
名称前缀
通常,路由名称会反映路径元素的继承链,因此,users/comments/5将会由名为users.comments.show的路由实现。
//路由组名称前缀
Route::group(['as' => 'users.', 'prefix' => 'users'],function(){
Route::group(['as' => 'comments.', 'prefix' => 'comments'], function(){
Route::get('{id}', function(){
//
})->name('show');
})
});
加载视频view的三种方法
1、直接使用view()加载
2、使用View::make()加载
3、使用注入Illuminate\View\View Factory的方式实现视图的加载
传递变量给视图
Route::get('tasks',function(){
return view('tasks.index')
->with('tasks', Task::all());
});
控制器
本质上是在一个位置讲一个或多个路由逻辑组织在一起的类。控制器可以处理那些可对特定资源执行的所有操作。
创建控制器
php artisan make:controller 控制器名(例如:TasksController)
生成的控制器位于app/Http/Controllers文件夹中,创建一个名为home()的公共方法
<?php
use App\Http\Controllers\Controller;
class TasksController extends Controller{
public function home(){
return 'hello, World!';
}
}
//接下来建立一个路由
//routes/web.php
<?php
Route::hey('/', 'TasksController@home');
获取用户输入
绑定基本的表单操作
//routes/web.php
Route::get('tasks/create', 'TasksController@create');
Route::post('tasks', 'TasksController@store');
常见的表单输入控制器方法
//TasksController.php
...
public function store(){
$task = new Task;
$task->title = Input::get('title');
$task->description = Input::get('description');
$task->save();
return redirect('tasks');
}