laravel 在表单中显示修改后的值

laravel showing modified values in form

也许这是一个简单的问题,但我找不到解决方案。

我正在构建一个表单来修改包含以下字段的文档: lesson_titleday_idspeaker_idfile.

保存文件效果很好,当我想编辑单条记录时,问题就来了。这是我正在使用的:

{{ Form::model($document, array('route' => array('admin.material.update', $document->id),'files' => true, 'method' => 'put')) }}
<p>
    {{ Form::label('Lesson title') }}
    {{ Form::text('lesson_title') }}
</p>
<p>
    {{ Form::label('Speaker') }}
    {{ Form::select('speaker_id', Speaker::lists('fullname', 'id')) }}
</p>
<p>
    {{ Form::label('Day of the lesson') }}
    {{ Form::text('masterday_id', array('class' => 'form-control','id' => 'calendar')) }}
</p>
<p>
    {{ Form::label('Material','Select the material to insert') }}
    {{ Form::label('file') }}
    {{ Form::file('file') }}
</p>
    {{ Form::button('Save', ['type' => 'submit']) }}
{{ Form::close() }}

对于演讲者,我没有任何问题,因为 Speaker::lists 给出了与其相对 ID 相关的名称列表。

我对 masterday_id 有疑问,它是 table masterdays 中的 ID。此 table 中的一条记录只有一个字段 day(并且格式为日期)。

我希望在我的 Form::text('masterday_id') 中可以看到与该 ID 相关的 day,而不是 ID。

Form::label('file') 的类似问题,我看到了所有扩展名、完整路径,而我只想看到文件名。

对于 masterday_id 你需要在你的模型中创建一个关系(如果你还没有)

public function masterday(){
    return $this->hasOne('Masterday');
}

然后您可以使用此语法从相关模型中检索字段:

Form::text('masterday[day]');

对于 file,您可以使用 attribute accessor:

public function getFilenameAttribute(){
    return basename($this->attributes['file']);
}

用法:

{{ Form::label('filename') }}