【问题标题】:Link Button Not Working in Laravel链接按钮在 Laravel 中不起作用
【发布时间】:2018-11-19 10:25:25
【问题描述】:

我想在 laravel 的 CRUD 应用程序中编辑一条记录,其中我有一个链接到索引视图的按钮,但是当我单击它时,它会将我重定向到控制器的 UPDATE 方法。
这是我的表格:

{!! 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>   

我有以下按钮用于返回索引页面,但这会将我带到控制器的 UPDATE 方法:

<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');

在我看来一切都很好,但我不知道这里出了什么问题。
提前感谢任何帮助。

【问题讨论】:

  • 发布路线文件的内容
  • @AmandeepSingh,我将其添加到问题中。
  • Arw 你确定你在正确的地方关闭了表单标签,我不这么认为。
  • 我认为您的结束标签排列不正确..请先修复它..
  • @AbdulRaheemGhani:你觉得它有效吗?

标签: laravel


【解决方案1】:

我不确定它是否能解决您的问题,请尝试将您的按钮代码放在表单组 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>

【讨论】:

  • 这背后的逻辑是什么?
  • 我在手机上发帖,所以无法发布代码。看来你的html代码结构不对。
  • @AbdulRaheemGhani :实际上他是对的,你可以检查你的 html 你把button 放在表单标签里面哪个是submit 类型,它照常工作
  • @AmandeepSingh :我正在更新适用于他的代码,但如果他正确安排了他的标签,那么它将自动工作,button 标签将在 button 类型之外工作 form 标签
  • @AmandeepSingh :如果您觉得可以更新/删除我的更改。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-25
  • 2017-05-23
  • 2023-03-28
  • 2013-06-19
  • 2019-04-23
  • 2011-05-23
相关资源
最近更新 更多