在我的laravel项目管理应用程序中,我有项目,一个项目可以创建许多任务,一个任务已发布许多与任务有关的文件。所以,在我的文件中,附件表单是视图文件中的文件夹
文件/ form.blade.php
@foreach ($task->project->files as $file)
<div>
<div><i class="fa fa-check-square-o"></i>
<span>
<a href="{{ $file->file_url }}" target="_blank">{{ $file->file_name }}</a>
</span>
</div>
</div>
<hr/>
@endforeach
<form class="form-vertical" role="form"
enctype="multipart/form-data"
method="post"
action="{{ route('projects.files', ['projects' => $project->id]) }}">
<div class="form-group{{ $errors->has('file_name') ? ' has-error' : '' }}">
<input type="file" name="file_name" class="form-control" id="file_name">
@if ($errors->has('file_name'))
<span class="help-block">{{ $errors->first('file_name') }}</span>
@endif
</div>
<div class="form-group">
<button type="submit" class="btn btn-info">Add Files</button>
</div>
<input type="hidden" name="_token" value="{{ csrf_token() }}">
</form>
和任务模型的文件模型关系是这个
public function task(){
return $this->belongsTo(Task::class);
}
与文件模型的任务模型关系是这个
public function files(){
return $this->hasMany('App\File');
}
现在我将files / form.blade.php文件与tasks / show.blade.php文件一起包含在内
任务/ show.blade.php
<h2>{{ $task->project->project_name }}</h2>
<hr>
{{$task->task_name}}
<hr>
{!!$task->body!!}
<hr>
@include('files.form')
然后当我尝试查看task / show.blade.php文件时,会出现以下错误
Undefined variable: task (View: C:\Users\Lilan\Desktop\ddd\resources\views\files\form.blade.php)
如何解决这个问题?
答案 0 :(得分:0)
这很奇怪,不应该发生,但请尝试将您的变量显式传递给您的子模板:
@include('files.form', ['task' => $task])
默认情况下,正如here所述,您应该能够访问子模板中父模板的所有数据。