【问题标题】:Laravel 5 - updating hasMany / belongsTo related recordLaravel 5 - 更新 hasMany / belongsTo 相关记录
【发布时间】:2015-05-09 22:06:15
【问题描述】:

Laravel (5) 新手问题。构建项目/任务项目。

路线:

Route::resource('project', 'ProjectsController');
Route::resource('project.task', 'TasksController');

项目模型:

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

任务模型:

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

现在正在尝试编辑/更新特定任务。 任务路径是 project/{project}/task/{task}/edit

** 问题 - 我在 TasksController 中的编辑和更新功能是否正确?它有效,但不确定是否应该这样做...... **

public function edit($project_id, $task_id)
{
    $Task = Tasks::find($task_id);
    return view('task_edit', compact('Task'));
}

public function update($project_id, $task_id)
{
    $input = array_except(Input::all(), '_method');
    $Task = Tasks::find($task_id);
    $Task->update($input);

    return Redirect::route('project.show', array($Task->project->id));
}

【问题讨论】:

  • 如果您在 Task 模型上分配了一个 $fillable 数组,那么您不需要从 $input 中删除 _method,您可以发送 Input::all () 并且只有可填充的列将是更新。您可能也应该实施一些验证。
  • 谢谢。将仅尝试使用 Input::all()。是的,需要实施验证。 $project_id 参数呢?我很困惑是否应该以某种方式使用传递给编辑/更新(也包括创建和存储)函数的 $project_id 参数?

标签: php laravel-5 has-many belongs-to


【解决方案1】:

您没有任何验证。不确定是否有意。您可以使用Request::except('field'); 获取除不需要的值之外的所有值。除了那东西看起来不错。你有什么担心的吗?

【讨论】:

  • 谢谢帕维尔。我很困惑是否应该以某种方式使用传递给编辑/更新(也包括创建和存储)函数的 $project_id 参数
  • 因为你有一对多的关系,你甚至可以从路由中跳过项目/ID。每个任务都有唯一的 id,用于检索记录并更新它。如果您有多对多关系,则需要查找和更新记录,并且任何额外的参数都将位于数据透视表上。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-04
  • 1970-01-01
相关资源
最近更新 更多