Laravel - 将表单请求中的变量返回给Controller

时间:2017-11-05 13:32:45

标签: laravel

如何将表单请求(App\Http\Requests)中的变量返回到Controller (App\Http\Controllers)

我在Form Requests上保存了函数persist()的记录。

我的目标是传递生成的ID,以便我可以在编辑模式下为用户重定向页面。出于某种原因,Controller无法从表单请求中接收id。

应用\ HTTP \请求\ MyFormRequests.php:

function persist()
{
  $business = Business::create([
    'cart_name' => $this['cart_name'],
    'product' => $this['product']
  ]);

  return $myid = $business->id;
}

应用\ HTTP \控制器\ MyControllers.php:

public function store(MyFormRequests $request)
{
   $request->persist();

   return redirect()->route('mypage.edit.get', $request->persist()->$myid);
}

2 个答案:

答案 0 :(得分:0)

重要

我必须补充一点,这不是推荐的方法。您的FormRequest应仅负责验证请求,而Controller则负责存储部分。但是,这将有效:

应用\ HTTP \请求\ MyFormRequests.php:

function persist()
{
    return Business::create([
        'business_name' => $this['business_name'],
        'nationality' => $this['nationality']
    ])->id;
}

应用\ HTTP \控制器\ MyControllers.php:

public function store(MyFormRequests $request)
{
    $id = $request->persist();

    return redirect()->route('register.edit.get', $id);
}

答案 1 :(得分:0)

一个男人名字Snapey帮助了我:

function persist()
{
  ....
  return $business;
}

public function store(MyFormRequests $request)
{
  $business = $request->persist();
  return redirect()->route('register.edit.get', $business->id);
}

希望这可以帮助将来的某个人。