laravel入门教程(二)

上次说到了子域名路由,这回从命名空间前缀说起

命名空间前缀

通过使用路由组命名空间前缀,就可以避免在群组内使用很长的控制器进行引用,如

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');
}

猜你喜欢

转载自blog.csdn.net/xielinrui123/article/details/80659932