在Laravel叶片模板中使用DRY原理



我试图在我的Blade模板中使用DRY方法。我如何重用@section而不是将它们复制到几个模板中。

示例:

@section('job_level_menu')
   @foreach ($job_levels as $job_level)
   <option value="{{{$job_level->id}}}">{{{$job_level->name}}}</option>
    @endforeach
@stop

我希望在许多其他模板中使用这一部分,我不希望为了代码可维护性而复制它们

其次,我有几个存储库,这些存储库对我的所有控制器都是通用的。是否可以在BaseController __construct()方法中注入一个存储库,该方法将在其他控制器中可用。

我试过了,但不起作用:

class BaseController extends Controller {
    /**
     * @param MenuRepositoryInterface $menu
     */
    public function __construct(MenuRepositoryInterface $menu){
        $this->menu = $menu;
    }
}

您可以将此部分保存在单独的文件中,并且在需要的文件中可以使用:

@include('file_with_section')

最新更新