将ID从控制器索引传递到存储-Laravel

时间:2019-03-21 03:49:49

标签: php laravel

这是我的路线:

Route::post('/store', 'EditlinkController@store');

我的控制器

public function index()
{  
    $id = $_GET['id'];
    $links = DB::table('slugs')->where('slugs.id',$id)
             ->join('links','links.sid','=','slugs.id') 
             ->get();  
    return view('editlink', ['links' => $links]);   
}

public function store(Request $request, $id)
{
    $url = $request->input('url');

    $data =new link;
    $sid = $id; 
    $data->sid = $sid;
    $data ->url = $url; 
    $data ->save(); 

    return redirect('/links');
}

我的观点:

<form role="form" method='POST' action="{{url('store')}}">
  <div class="entry input-group col-xs-3">
    <input class="form-control" name="url" type='url' placeholder="https://..." size="100"/>
    <input type="hidden" name="_Token" value="{{ csrf_token() }}">
    <button type="submit" class="btn btn-primary" type="button">
      <span class="material-icons md-12">add</span>
    </button>
    {{ csrf_field() }}
  </div> 
</form>

所以基本上在这里我想从索引调用$ id到存储。我也尝试过

Route::post('/store/{id}', 'EditlinkController@store');

但是仍然不起作用。谢谢。

1 个答案:

答案 0 :(得分:2)

您的路线/store/{id}要求您具有route参数。在为表单生成URL之前,请确保您有$id可用。

包含$id的开放式表单标签的外观示例:

<form role="form" method='POST' action="{{url('store', $id)}}">

我假设视图 editlink 是表单标记所在的位置。如果是这样,则只需将id的值从控制器传递给视图:

return view('editlink', ['links' => $links, 'id' => $id]);
相关问题