2017-11-28 2 views
0

Ich brauche task_id in der Dateitabelle drucken, wenn ein Benutzer Dateien anhängen will . das ist mein form.blade.php Datei AktionUndefinierte Variable: Aufgabe (Ansicht: C: Benutzer 13 Desktop TDT Ressourcen views files form.blade.php) in Laravel

files/form.blade.php

action="{{ route('projects.files', ['projectId'=> $project->id, 'taskId'=>$task->id])}}"> //and this is line 39 

und das ist FilesController

private function saveUploads(Request $request, $fileUrl, $id,$taskId) 
    { 
     $file = new File; 
     $file->file_name = $request->file('file_name')->getClientOriginalName(); 
     $file->file_url = $fileUrl; 
     $file->project_id = $id; 
     $file->task_id = $taskId; 


     $file->save(); 
    } 

und dies ist meine Dateianhang Routen

Route::post('projects/{projects}/files', [ 
    'uses' => '[email protected]', 
    'as' => 'projects.files', 
    'middleware' => ['auth'] 
]); 

und Meine Datei/form.blade.php ist mit show.blade.php Datei im Aufgabenordner enthalten im Hinblick Verzeichnis

Aufgaben/show.blade.php

{{$task->task_name}} 
<hr> 
{!!$task->body!!} 
<hr> 
@include('comments.form') 
@include('files.form') // form.blade.php include 

aber leider habe ich diesen folgenden Fehler

ErrorException in ae0a86ab95cb7f092eb44a17fd000e94f21b305d.php line 39: 
Undefined variable: task (View: C:\Users\13\Desktop\ddd\resources\views\files\form.blade.php) 

, wie dieses Problem beheben?

Edited das ist mein TaskController zeigen Verfahren

public function show($project_id,$task_id) 
{ 
    $project = Project::find($project_id); 
    $task = Task::find($task_id); 

return view('tasks.show')->withProject($project)->withTask($task); 
} 

voll form.blade.php Codes

<div class="row" style="border:1px solid #ccc;margin-left:5px;width:100%;padding:15px;"> 
    @foreach($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', $project->id, $task->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> 
    </div> 
</div> 
+1

Das Problem ist wahrscheinlich in der Show-Aktion, wo Sie die Task-Variable übergeben, können Sie uns den Code in Ihrer Show-Aktion zeigen? – teeyo

+0

eigentlich Keine Aktion in der Datei show.blade.php? – John

+0

meinst du show.blade.php? – John

Antwort

0

Der Fehler bedeutet, dass $task ist nicht auf Ihre Klinge geführt wird. In Ihrem Controller-Code, der tasks/show.blade.php lädt, müssen Sie sicherstellen, dass Sie die Variable $task übergeben.

Aktualisieren Sie Ihren Code aus:

return view('tasks.show')->withProject($project)->withTask($task); 

An:

return view('tasks.show', ['task' => $task, 'project' => $project]); 

Sie müssen auch aktualisieren:

@include('files.form') 

zu:


Überprüfen Sie, ob das Löschen des Caches zur Behebung des Problems beiträgt. Führen Sie den folgenden Befehl Handwerker:

php artisan cache:clear 

Wenn Sie die Berechtigung Fehler erhalten, können Sie ausführen müssen:

sudo php artisan cache:clear 

Oder Sie können den Cache mein Löschen aller Dateien im /storage/framework/views Ordner manuell löschen.

+0

siehe meine bearbeiteten Fragen – John

+0

wo sollte ich diese retutn Ansicht setzen – John

+0

Siehe meine aktualisierte Antwort. –

0

Wenn Sie Ihr Problem bekommen.Sie migh für diese Art of..Try diese suchen: -

public function show($project_id,$task_id) 
{ 
$project = Project::find($project_id); 
$task = Task::find($task_id); 

return view('files.form')->with(comapct('task','project')); //update return line only! 
} 

Hoffe, es hilft!

+0

gleicher Fehler hier – John

+0

Was ist Ihr Blade-Dateiname? – kunal

+0

form.blade.php - das ist Dateianhang Blade Dateiname – John

Verwandte Themen