Laravel根据值更改按钮的功能/文本

时间:2015-04-26 04:05:55

标签: laravel laravel-5

我使用的是Laravel 5,我有一个按钮"启用"按下后,将DB中的一个标志设置为1.这一切都可以正常使用我的代码:

刀片视图

{!! Form::open(['url' => '/cms/user/' . $user->id . '/flag', 'method' => 'PUT']) !!}
                                {!! Form::hidden('flagged', !$user->flagged) !!}
                                {!! Form::submit('Flag', ['class' => 'btn btn-success'])!!}
                                {!! Form::close() !!}

控制器

/**
 * Update the specified resource in storage.
 *
 * @Middleware({"auth"})
 *
 * @param  int $id
 * @Put ("cms/user/{user}/flag",as="cms.users.update.flag")
 * @return Response
 */
    public function updateflag($id)
        {
            $user = User::find($id);
            //dd(Input::get('flagged'));
            $user->flagged = Input::get('flagged');

            $user->save();

            Session::flash('message', 'Successfully flagged idea!');
            return redirect()->route('cms.users.index');
        }

现在,我尝试解决的问题是在用户标记按钮后更改按钮。即:第一次按钮应该说"启用" (DB值为0)。然后我按下按钮,它将DB中的标志更新为1(工作正常)。

但现在,按下按钮后,如何将按钮文本更改为"禁用"所以我可以按下按钮禁用用户。有点像开/关开关,我可以启用/禁用用户,但根据标记值在数据库中的内容更新按钮文本和功能。

1 个答案:

答案 0 :(得分:2)

将一个布尔变量传递给视图(显然你已经有一个包含这个信息的变量):

return redirect()->route('cms.users.index')->with(['flag' => $flag]);

然后在视图中创建一个if / else:

@if($flag)
    {!! Form::submit('Enable', ['class' => 'btn btn-success', 'disabled' => 'disabled']) !!}
@else
    {!! Form::submit('Enable', ['class' => 'btn btn-success']) !!}
@endif