Php laravel通过控制器使用post方法


Php laravel using post method by controller

am尝试通过post方法将值表单发送到控制器

这是我的观点,我如何使用邮寄方式发送

 <form class="form-horizontal" role="form">
    <div class="form-group">
      <label class="col-lg-3 control-label">Title:</label>
      <div class="col-lg-8">
        <input class="form-control" value='{{ $words->first()->title }}' type="text">
      </div>
    </div>
    <div class="form-group">
      <label class="col-lg-3 control-label">Meaning:</label>
      <div class="col-lg-8">
        <input class="form-control" value="{{ $words->first()->meaning }}" type="text">
      </div>
    </div>
    <div class="form-group">
      <label class="col-md-3 control-label"></label>
      <div class="col-md-8">
        <input class="btn btn-primary" value="Save Changes" type="button">
        <span></span>
        <input class="btn btn-default" value="Cancel" type="reset">
      </div>
    </div>
  </form>

这是类似的控制器方法

public function postSaveedit($meaning){

}

通过控制器使用路线

您应该阅读Laravel中的请求:https://laravel.com/docs/5.2/requests#accessing-请求

你需要把它传给你的控制器

public function postSaveedit(Request $request) {
    $input = $request->input();
    $foo = $input['foo'];
    $bar = $input['bar'];
    $baz = $input['baz'];
}

在Laravel 5.2中,您可以使用request()helper方法来解决您的问题。。。这就是你可以做到的…

路由文件应该是这样的(确保这个路由应该是post-type)

Route::post('/myurl', 'Controllername@postSaveEdit')->name('postSaveEdit');

表单文件应该是这样的,也请在表单中指定输入字段名称,这样你就可以在控制器中通过它们指定的名称(比如-title,意思是-见下面的代码)来获取它们。。。

<form class="form-horizontal" action="{{ route('postSaveEdit') }}" method="POST" role="form">
  <div class="form-group">
    <label class="col-lg-3 control-label">Title:</label>
    <div class="col-lg-8">
      <input class="form-control" name="title" value='{{ $words->first()->title }}' type="text">
    </div>
  </div>
  <div class="form-group">
    <label class="col-lg-3 control-label">Meaning:</label>
    <div class="col-lg-8">
      <input class="form-control" name="meaning" value="{{ $words->first()->meaning }}" type="text">
    </div>
  </div>
  <div class="form-group">
    <label class="col-md-3 control-label"></label>
    <div class="col-md-8">
      <button class="btn btn-primary" type="submit">Save Changes</button>
      <span></span>
      <input class="btn btn-default" value="Cancel" type="reset">
    </div>
  </div>
</form>

控制器应该是这样的。。。

public function postSaveEdit() {
    // The inputs variable contains all your form's inputs in the form of array...
    $inputs = request()->all();
    /* 
        $inputs = array(
            'title' => 'title_value',
            'meaning' => 'meaning_value'
        )
    */
    // Wheareas you can also get them by using 'get' method on request method like this
    $title = request()->get('title');
    $meaning = request()->get('meaning');
}

这里是

表单

您必须将方法添加到您的表单+将名称添加到输入

<form class="form-horizontal" role="form" method="POST">
    <!-- Add csrf token -->
    {!! csrf_field() !!}
    <div class="form-group">
      <label class="col-lg-3 control-label">Title:</label>
      <div class="col-lg-8">
        <input class="form-control" value='{{ $words->first()->title }}' type="text" name="input1">
      </div>
    </div>
    <div class="form-group">
      <label class="col-lg-3 control-label">Meaning:</label>
      <div class="col-lg-8">
        <input class="form-control" value="{{ $words->first()->meaning }}" type="text" name="input2">
      </div>
    </div>
    <div class="form-group">
      <label class="col-md-3 control-label"></label>
      <div class="col-md-8">
    <input class="btn btn-primary" type="submit" value="Save Changes"/>
        <span></span>
        <input class="btn btn-default" value="Cancel" type="reset">
      </div>
    </div>
  </form>

控制器

Use Word; // at the top of the class
public function postSaveedit(Request $request) {
$word= new Word; // if you are creating a new record
$word= Word::find(1);// if you are updating a record
$word->title = $request->input('input1');
$word->meaning= $request->input('input2');
$word->save();
return view('home.blade.php');

}

路由文件

Route::get('/myurl', 'Controllername@postSaveedit');

:)