从网址获取id并在laravel 5中传入表单

时间:2017-01-06 09:05:42

标签: laravel laravel-5

我将路线定义为

Route::get('roundtables/{name}/tags/store',['as'=>'tags.store','uses'=>'TagController@store','middleware'=>['owner','auth']]);

在我看来,我在这个网址中有一个表单

  

http://localhost:8000/roundtables/1/tags

<div class="col-md-3">
        <div class="well">
            {!! Form::open(['route'=>'tags.store','method'=>'GET']) !!}
            <h2>New Tags</h2>
            {{ Form::label('name','Name') }}
            {{ Form::text('name',null,['class'=>'form-control']) }}

            {{Form::submit('Create New Tag',['class'=>'btn btn-primary btn-block btn-h1-spacing'])}}
        </div>

    </div>

我的问题是,如何从ID为1的url获取id并在用户点击提交时传入表单。

我的控制器

public function store(Request $request,$name)
{
    $this->validate($request,array('name'=>'required|max:255'));
    $tag=new Tag;
    $tag->name=$request->name;
    $tag->roundtable_id=$name;
    $tag->save();


    Session::flash('success','New Tag was successfully added');

    return redirect()->route('tags.index');
}

4 个答案:

答案 0 :(得分:1)

您可以轻松使用request()辅助方法获取通配符值。

{{request()->route('name')}}

答案 1 :(得分:1)

当您使用CRUD的自定义路由时,请避免使用标准的RESTful方法和路由名称。在构建表单之前,您需要将此变量传递给视图:

mscorlib

将路线定义为:

var arrOf12Numbers = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120];

var result = [];

var sum = 0;

arrOf12Numbers.forEach(function (val, key) {
  sum += val;
  result.push(sum);
});

console.log(result);

然后从表单传递变量:

public function createTag($name)
{
    ....
    return view('form', compact('name'));
}

并在控制器中获取它:

Route::get('roundtables/{name}/tags/storeTag',['as'=>'tags.storeTag','uses'=>'TagController@storeTag','middleware'=>['owner','auth']]);

答案 2 :(得分:0)

这应该有用。

Request::segment(2)

或者从控制器传递它:

public function index($name)
{
    $tags= Tag::where($name)->first();
    return view('tags.index')->withTags($tags)->with('name', $name);
}

然后将其传递给表格:

{!! Form::open(['route'=>['tags.store', $name],'method'=>'GET']) !!}

答案 3 :(得分:0)

在你的TagController中

public function index($name)
{
    $tags= Tag::where($name)->first();


    // add name parameter to return
    return view('tags.index')->withTags($tags)->withName($name);
}

在你看来

<div class="col-md-3">
        <div class="well">


            //edit this form tag
            {!! Form::open(['route'=>['tags.store',$name],'method'=>'GET']) !!}

            <h2>New Tags</h2>
            {{ Form::label('name','Name') }}
            {{ Form::text('name',null,['class'=>'form-control']) }}

            {{Form::submit('Create New Tag',['class'=>'btn btn-primary btn-block btn-h1-spacing'])}}
        </div>

    </div>

TagController@store

public function store(Request $request,$name){
         echo $name;
}