4

laravvel 控制器基本使用

创建普通控制器

php artisan make:controller admin/ArticlesController

控制器的命名空间

在使用路由是注意控制器的命名空间

Route::get('/admin/article/index', 'adminArticlesController@index');

创建资源控制器

php artisan make:controller admin/ArticlesController -r 
php artisan make:controller admin/ArticlesController --resource

部分资源控制器

在声明资源路由时, 如果只需要一部分方法, 就可以使用部分资源路由

// 指定需要的方法
Route::resource('/admin/user', 'adminUserController', [
    'only' => ['create', 'store', 'index'],
]);
// 指定不需要的方法
Route::resource('/admin/user', 'adminUserController', [
    'except' => ['create', 'store', 'destroy'],
]);

补充资源控制器

如果资源控制器默认生成的方法,不足以完成某个功能,还需要添加方法
补充方法的访问路由,一定要定义到资源路由前面,否则可能会被覆盖

Route::get('/user/upload',  'UesrController@upload_form');
Route::post('/user/upload', 'UesrController@upload_file');
Route::resource('/user', 'UserController');

依赖注入

访问路由

Route::get('/article/{articleId}', 'ArticleController@index');

依赖注入的方式

  • 构造方法
  • 成员方法

构造方法注入

namespace AppHttpControllers;
use AppArticle;

class ArticleController extends Controller {
    protected $article;

    public function __construct(Article $article){
        $this->article = $article;
    }

    public function index(){
        dump($this->article);  
    }
}

成员方法注入

namespace AppHttpControllers;

use AppArticle;

class ArticleController extends Controller {
    public function index(Article $article) {
        dump($article);
    }
}

创建控制器自动注入模型对象

php artisan make:controller ArticlesController --model=Article
原文地址:https://www.cnblogs.com/liaohui5/p/10581616.html