2017-10-15 38 views
0

我正在使用laravel 5.2开发项目管理应用程序,在我的应用程序中用户可以创建项目,一个项目有许多任务,一个任务有许多子任务。这是我的每个模型关系如何在Laravel 5.2中使用taskId打印任务名称

项目模型

public function tasks(){ 
     return $this->hasMany('App\Task'); 
} 

任务模型

public function subtasks(){ 
     return $this->hasMany(Subtask::class); 
    } 

子任务模式

public function task(){ 
     return $this->belongsTo(Task::class); 
    } 

这是我的子任务的子任务的输入表单/ form.blade .php

Add子课题负责人
<form class="form-vertical" role="form" method="post" action="{{ route('subtasks.form', ['projectId'=> $projectId, 'taskId'=>$taskId])}}"> 
    <div class="form-group{{ $errors->has('name') ? ' has-error' : '' }}"> 
    <input type="text" name="task_name" class="form-control" id="name" value="{{ old('task_name') ?: '' }}"> 
    @if ($errors->has('task_name')) 
     <span class="help-block">{{ $errors->first('task_name') }}</span> 
    @endif 
    </div> 
    <div class="form-group"> 
     <button type="submit" class="btn btn-info">Create Task</button> 
    </div> 
    <input type="hidden" name="_token" value="{{ csrf_token() }}"> 
</form> 

路线

Route::get('projects/{projectId}/task/{taskId}/subtask', function ($projectId, $taskId) { 

    return view('subtasks/form',['projectId'=>$projectId,'taskId'=>$taskId]); 
}); 
在我的表单文件

我可以打印$专案编号和$任务id以及但是现在我就需要到IDS我怎么能做到这一点的打印PROJECT_NAME和TASK_NAME?

更新问题 请参阅我的子任务店里方法

public function store(Request $request,$projectId,$taskId) 
    { 
     $subtask = new Subtask; 
     $subtask->subtask_name = $request->input('task_name'); 
     $subtask->task_id = $taskId; 
     $subtask->project_id = $projectId; 

     $subtask->save(); 
     // 
    } 

回答

1

你可以像这样(Q & d溶液):

Route::get('projects/{projectId}/task/{taskId}/subtask', function ($projectId, $taskId) { 
    $project = \App\ProjectModel::find($projectId); 
    $task = \App\TaskModel::find(taskId); 
    return view('subtasks/form',['project'=>$project,'task'=>$task]); 
}); 

注:在您的表单操作,你会需要更新以下内容:

['projectId'=> $projectId, 'taskId'=>$taskId] 

通过:

['projectId'=> $project->id, 'taskId'=>$task->id] 
+0

请参阅我的更新问题,如何根据这一新的变化 – John

+0

我给你没有改变任何东西的代码改变我的子任务存储方法。它只允许您在视图中访问对象的其他属性。在你的更新方法中,你仍然有'$ projectId'和'$ taskId'变量。什么是错误? –

+0

得到这个错误** Class'Project'not found ** – John