我想在laravel中的CRUD应用程序中编辑一条记录,其中有一个按钮链接到索引视图,但当我单击它时,它会将我重定向到控制器的更新方法
这是我的表格:
{!! Form::open(['route' => ['players.update', $player->id], 'method' => 'PUT', 'files'=>'true']) !!}
<div class="row col-md-10 col-md-offset-1 panel">
<div class="col-md-8 col-md-offset-2">
<br />
<div class="form-group">
{{ Form::label('name', 'Player Name') }}
{{ Form::text('name', $player->name, ['class' => 'form-control']) }}
</div>
<div class="form-group">
{{ Form::label('file', 'Upload Image') }}
{{ Form::file('pic') }}
</div>
<div class="form-group">
{{Form::button('Save Record', ['type' => 'submit', 'class' => 'btn btn-success'])}}
{!! Form::close() !!}
<a href="{{ route('players.index') }}">
<button class="btn btn-danger" >Cancel</button>
</a>
</div>
</div>
</div>
我使用以下按钮返回索引页,但这将带我进入控制器的更新方法:
<a href="{{ route('players.index') }}">
<button class="btn btn-danger" >Cancel</button>
</a>
这是我在控制器中的索引方法:
public function index()
{
$players = Player::paginate(5);
return view('players.index', compact('players'));
}
这是控制器中的UPDATE方法:
public function update(Request $request, $id)
{
return "Hi";
}
这是我的路由文件内容:
Route::resource('news', 'NewsController');
Route::resource('competition', 'CompetitionsController');
Route::resource('players', 'PlayersConroller');
在我看来一切都很好,但我不知道这里出了什么问题。
任何帮助都非常感谢。
我不确定它是否会解决您的问题,请尝试将您的按钮代码放在表单组div之外。
您可以根据需要更改代码
<a href="{{ route('players.index') }}" class="btn btn-danger">Cancel</a>
你可以检查你的html,你把按钮放在表单标签里面,它是哪种类型的提交,这就是它再次提交表单的原因。
将表单代码替换为:
<div class="row col-md-10 col-md-offset-1 panel">
<div class="col-md-8 col-md-offset-2">
{!! Form::open(['route' => ['players.update', $player->id], 'method' => 'PUT', 'files'=>'true']) !!}
<br />
<div class="form-group">
{{ Form::label('name', 'Player Name') }} {{ Form::text('name', $player->name, ['class' => 'form-control']) }}
</div>
<div class="form-group">
{{ Form::label('file', 'Upload Image') }} {{ Form::file('pic') }}
</div>
<div class="form-group">
{{Form::button('Save Record', ['type' => 'submit', 'class' => 'btn btn-success'])}}
</div>
{!! Form::close() !!}
</div>
<a href="{{ route('players.index') }}">
<button class="btn btn-danger">Cancel</button>
</a>
</div>