Laravel Virgin:在控制器中注入一个模型作为依赖

在我继承的模型代码中,有一些严肃的逻辑,我想使用 Laravel 的依赖注入来将模型作为依赖项加载到控制器中,而不是使用 Laravel 提供的外观。


所以这是一个示例控制器:


namespace App\Http\Controllers;


use App\User;

use App\Http\Controllers\Controller;


class UserController extends Controller

{

    /**

     * Show the profile for the given user.

     *

     * @param  int  $id

     * @return View

     */

    public function show($id)

    {

        return view('user.profile', ['user' => User::findOrFail($id)]);

    }

}

但是User我希望能够将它作为依赖项加载到控制器中,而不是使用 Facade :



namespace App\Http\Controllers;


use App\User;

use App\Http\Controllers\Controller;

user App\Models\User


class UserController extends Controller

{


     /**

     * @var User

     */

     private $user=null;


     public function __construct(User $user)

     {

       $this->user=$user;

     }



    /**

     * Show the profile for the given user.

     *

     * @param  int  $id

     * @return View

     */

    public function show($id)

    {

        return view('user.profile', ['user' => $this->user->findOrFail($id)]);

    }

}


我想要这样做的原因是因为我来自 Symfony 背景,其中依赖注入模式被严重破坏。另外依赖注入是单元测试最好的伙伴,所以我希望能够将我熟悉的依赖注入统一化。


所以我想知道我是否可以在Controllers中注入逻辑存在的模型,而不是使用laravel提供的Facade Pattern。


米琪卡哇伊
浏览 202回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP