2017-09-04 58 views
-1

我有這樣如何修復想在我Laravel 5.2應用程序獲取非對象的財產laravel 5.2

id  task_name  project_id 
    1   aaa    1 
    2   hjhkj    2 
    3   jhghg    1 
    4   jgsdygu   3 
    5   gdggfv   2 

任務表,現在我要爲在相關各PROJECT_ID顯示任務名稱我資源文件中任務文件夾中的index.blade.php文件。

我使用這個代碼這個

@foreach ($project->tasks as $task) 
    <h4><a href="/projects/{{$project->id}}/tasks/{{ $task->id }}">{{ $task->task_name }}</a></h4> 
@endforeach 

現在我可以看到任務相關的名字對每個PROJECT_ID。但現在我需要在位於任務文件夾show.blade.php文件女巫每個任務名稱和顯示PROJECT_ID,任務ID和任務名稱點擊

TaskController.php方法本

public function getOneProjectTask($projectId, $taskId) 
    { 
     $task = Task::where('project_id', $projectId) 
         ->where('id', $taskId) 
         ->first(); 
     return view('tasks.show')->withTask($task)->with('projectId', $projectId); 
    } 

,但我得到了以下錯誤消息

Trying to get property of non-object (View: C:\Users\Lilan\Desktop\prome\resources\views\tasks\show.blade.php) 

任務/ show.blade.php

{{ $task->task_name }} 
{{$task->project_id}} 

how can fix this problem? 

我的RO茨

Route::get('projects/{projects}/tasks/{tasks}', [ 
    'uses' => '\App\Http\Controllers\[email protected]', 

]); 
+0

你想要的輸出是什麼? –

+0

需要打印task_name,project_id,任務ID請參閱更新的問題 – Lilan

+0

顯示您的路線。 –

回答

0

首先做一個任務,資源路線

Route::resource('tasks', 'TaskController');

使用反向關係,在任務模式進行功能

public function project(){ return $this->belongsTo('App\Project', 'project_id'); }

,並在您的href鏈接,給任務的鏈接顯示href="{{ $url = route('tasks.show', [$task->id]) }}"

使用反向關係,當您將任務對象傳遞到像{{ $task->project->id }}這樣的視圖時,可以獲取項目ID。

+0

我的allready退出任務模型函數public function project() \t { return $ this-> belongsTo('App \ Project'); } – Lilan

+0

那麼很好,你不需要再創建另一個任務模型。你只需要將外鍵project_id賦給你的任務模型函數項目。 – Wangchen

+0

給它,但在這裏相同的錯誤 – Lilan

0

試試這個:使用dd

+0

是在我的getOneProjectTask方法中dd值正在工作 – Lilan

+0

dd($ task)的結果是什麼? ? –

+0

「1」作爲打印任務ID – Lilan

0

這是工作 TaskController

public function getOneProjectTask($projectId, $taskId) 
    { 
$task = Task::where('project_id', $projectId) 
         ->where('id', $taskId) 
         ->first(); 
     return view('tasks.show')->withTasks($task)->with('projectId', $projectId); 
    } 

路線

public function getOneProjectTask($projectId, $taskId) { 

    // dd($projectId); 
    // dd($taskId); 

    $task = Task::where([ 
       ['project_id', '=', $projectId], 
       ['id', '=', $taskId], 
      ])->first(); 

    // dd($task); 

    return view('tasks.show', compact('task', 'projectId')); 
} 

檢查您是否獲得價值

Route::get('projects/{projects}/tasks/{tasks}', [ 
    'uses' => '\App\Http\Controllers\[email protected]', 

]); 

tasks/show.blade.php

{{$tasks->task_name}}