Я занимаюсь разработкой приложения для управления проектами, используя laravel 5.2, и в моем приложении пользователь может создать проект, и у одного проекта много задач, а у одной задачи много подзадач. это мои отношения с каждой моделью
Модель проекта
public function tasks(){
return $this->hasMany('App\Task');
}
Модель задачи
public function subtasks(){
return $this->hasMany(Subtask::class);
}
Модель подзадачи
public function task(){
return $this->belongsTo(Task::class);
}
это моя форма ввода подзадач в subtasks / form.blade.php
Добавить подзадачу
<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]);
});
в моем файле формы я могу также напечатать $ projectId и $ taskId, но теперь мне нужно вывести имя_проекта и имя_программы относительно идентификаторов, как я могу это сделать?
обновленный вопрос
пожалуйста, посмотрите мои методы магазина подзадач
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();
//
}
Вы можете сделать так (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]
Других решений пока нет …