【问题标题】:how to print task name using taskId in Laravel 5.2如何在 Laravel 5.2 中使用 taskId 打印任务名称
【发布时间】:2018-03-26 22:16:36
【问题描述】:

我正在使用 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 但现在我需要打印关于 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();
        //
    }

【问题讨论】:

    标签: php laravel-5 table-relationships


    【解决方案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]
    

    【讨论】:

    • 请看我更新的问题如何根据这个新变化改变我的子任务存储方法
    • 我给你的代码没有改变任何东西。它只允许您访问视图中对象的其他属性。在您的更新方法中,您仍然拥有 $projectId$taskId 变量。错误是什么?
    • 哦,看看我编辑的答案,您需要为项目和任务提供您的模型名称(如果您没有use,请提供 FQN)。
    • 现在收到此错误 routes.php 第 120 行:找不到类 'App\ProjectModel'
    • 伙计,你必须使用你的模型名称,而不是我的......我不知道你如何命名你的模型......
    猜你喜欢
    • 1970-01-01
    • 2018-03-26
    • 1970-01-01
    • 2018-05-16
    • 1970-01-01
    • 1970-01-01
    • 2018-05-15
    • 2017-10-20
    • 2018-03-19
    相关资源
    最近更新 更多