【问题标题】:Redirect to show page after creating an add创建添加后重定向到显示页面
【发布时间】:2018-02-25 02:06:21
【问题描述】:

我有一个应用程序,用户可以在其中通过商店路径创建属性添加。如果这成功了,我想使用返回重定向来遵循控制显示页面的路线。路由是/property/id

这些是商店和展示控制器。

  public function store(Request $request, $id){
      $Advert = new PropertyAdvert();

      $Advert::create(
        [
          "photo"       => base64_encode(file_get_contents($request->photo->path())),
          "address"     => $request->address,
          "county"      => $request->county,
          "town"        => $request->town,
          "type"        => $request->type,
          "rent"        => $request->rent,
          "date"        => $request->date,
          "bedrooms"    => $request->bedrooms,
          "bathrooms"   => $request->bathrooms,
          "furnished"   => $request->furnished,
          "description" => $request->description
        ]
      );

    return redirect('/property/id');
    }

    public function show($id){
      $user = Auth::user();
    $Advert = PropertyAdvert::where('id', $id)->first();
    return view('pages/Advert/show', compact('Advert', 'user'));
  }

仅使用 /property/id 似乎不起作用,就像在您输入时在路由中所做的那样。

路线 Route::post('/createadvert', 'AdvertisementController@store');

Route::get('/property/{id}', 'AdvertisementController@show');

【问题讨论】:

  • 那么,当用户点击创建广告时,它会发送一些东西到那个地方吗?创建广告后,您想重定向到属性/id 页面,返回属性广告?
  • 当用户创建广告时,所有数据都被发送到数据库,然后我去重定向到一个展示页面(即刀片模板)来显示信息。如果我手动导航到 /property/id,我的模板就可以工作了

标签: php laravel laravel-5


【解决方案1】:
<?php
public function store(Request $request){
    $Advert = PropertyAdvert::create([
        "photo"       => base64_encode(file_get_contents($request->photo->path())),
        "address"     => $request->address,
        "county"      => $request->county,
        "town"        => $request->town,
        "type"        => $request->type,
        "rent"        => $request->rent,
        "date"        => $request->date,
        "bedrooms"    => $request->bedrooms,
        "bathrooms"   => $request->bathrooms,
        "furnished"   => $request->furnished,
        "description" => $request->description
    ]);

    $id = $Advert->id;

    return redirect("/property/$id");
}

public function show($id){
    $user = Auth::user();
    $Advert = PropertyAdvert::where('id', $id)->first();
    return view('pages/Advert/show', compact('Advert', 'user'));
}

?>

::create 作用于类,而不是类实例。

【讨论】:

  • 完美。谢谢
【解决方案2】:
public function store(Request $request){
      $Advert = new PropertyAdvert();

      $new = $Advert::create(
        [
          "photo"       => base64_encode(file_get_contents($request->photo->path())),
          "address"     => $request->address,
          "county"      => $request->county,
          "town"        => $request->town,
          "type"        => $request->type,
          "rent"        => $request->rent,
          "date"        => $request->date,
          "bedrooms"    => $request->bedrooms,
          "bathrooms"   => $request->bathrooms,
          "furnished"   => $request->furnished,
          "description" => $request->description
        ]
      );

    return redirect('/property/'.$Advert->id);
    }

【讨论】:

  • 我的问题是我收到一个错误,说参数太少。 1通过,2期待。当我取出 $id 时,错误是 Undefined variable: new
  • 在你的函数参数中删除 $id 请检查答案
猜你喜欢
  • 2017-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多