【发布时间】:2016-02-02 17:04:20
【问题描述】:
我正在关注 laravel 的教程,但有些东西我不明白。它被称为使用视图作曲家。
-
-我有一个从
app/http/routes.php调用的模板,给定一个 URL:Route::get('cats/create', function(){return view('cats.create');});
这是cats/create.blade.php:
@extends('master') @section('header') <h2> Add a new cat </h2> @stop @section('content') {!! Form::open(['url'=>'/cats']) !!} @include('partials.forms.cat') {!! Form::close() !!} @stop
-
-此模板包括另一个(部分)覆盖表单 HTML 的模板
<div class="form-group"> {!! Form::label('name','Name') !!} <div class="form-controls"> {!! Form::text('name', null, ['class' => 'form-control']) !!} </div> </div> <div class="form-group"> {!! Form::label('date_of_birth', 'Date of Birth') !!} <div class="form-controls"> {!! Form::date('date_of_birth', null, ['class' => 'form-control']) !!} </div> </div> <div class="form-group"> {!! Form::label('breed_id','Breed') !!} <div class="form-controls"> {!! Form::select('breed_id', $breeds, null, ['class' => 'form-control']) !!} </div> </div> {!! Form::submit('Save Cat', ['class' => 'btn-primary']) !!} -现在使用视图编辑器以便在调用此局部视图时自动填充选择元素。在
AppServiceProvider:
public function boot(ViewFactory $view) { $view->composer('partials.forms.cat','Furbook\Http\Views\Composers\CatFormComposer'); }
4.- 这就是CatFormComposer
class CatFormComposer
{
protected $breeds;
public function __construct(Breed $breeds)
{
$this->breeds = $breeds;
}
public function compose(View $view) {
$breeds = $this->breeds;
$view->with('breeds', $breeds->lists('name', 'id'));
}
}
它有效。我不明白的是,$breeds 参数是如何传递给类的构造函数的?
【问题讨论】: