Php 更新工作不正常

Php 更新工作不正常,php,laravel,Php,Laravel,我有一个posts表,它有一个tinyint列“active”。如果其“1”,则post处于活动状态,如果“0”处于非活动状态,则post处于活动状态 所以我有一个表单,其中有两个单选按钮“active”和“inactive” 如果在db中,列“active”为“1”,则单选按钮“active”显示为选中状态,如果为“0”,则单选按钮“inactive”显示为选中状态。这很好用 但是更新是不起作用的。当选择单选按钮并单击“更新”按钮时,它始终存储“1”,因此帖子始终处于活动状态。你知道问题在哪里

我有一个posts表,它有一个tinyint列“active”。如果其“1”,则post处于活动状态,如果“0”处于非活动状态,则post处于活动状态

所以我有一个表单,其中有两个单选按钮“active”和“inactive”

如果在db中,列“active”为“1”,则单选按钮“active”显示为选中状态,如果为“0”,则单选按钮“inactive”显示为选中状态。这很好用

但是更新是不起作用的。当选择单选按钮并单击“更新”按钮时,它始终存储“1”,因此帖子始终处于活动状态。你知道问题在哪里吗

dd($request->all())显示:

表单单选按钮:

<form method="post" class="clearfix" action="{{route('posts.update', ['post_id' => $post->id])}}">
    {{csrf_field()}}
    <div class="form-group">
        <label>Active or Inactive</label>
        <div class="hide-first">
            <div class="form-check">
                <input  {{  ($post->active) == 1 ? 'checked' : '' }}
                        class="form-check-input radio" type="radio"
                        name="active"
                        id="{{$post->active}}">
                <label class="form-check-label" for="exampleRadios1">
                    Active
                </label>
            </div>
            <div class="form-check">
                <input  {{  ($post->active) == 0 ? 'checked' : '' }}
                        class="form-check-input radio" type="radio" name="active" id="{{$post->active}}">
                <label class="form-check-label" for="exampleRadios1">
                    Inactive
                </label>
            </div>
        </div>
    </div>
    <input type="submit" value="Update"/>
</form>
编辑方法:

public function update(Request $request, $id)
    {

        //dd($request->all());

        $post = Post::find($id);
        $post->active = ($request->active == 'on') ? 1 : 0;
        $post->save();

        Session::flash('success', 'Post status updated.');
        return redirect()->back();
    }
public function edit($id)
{
    $post = Post::find($id);
    return view('posts.edit')->with('post', $post);
}
<form method="post" class="clearfix" action="{{route('posts.update', ['post_id' => $post->id])}}">
    {{csrf_field()}}
    <div class="form-group">
        <label>Active or Inactive</label>
        <div class="hide-first">
            <div class="form-check">
                <input  {{  ($post->active) == 1 ? 'checked' : '' }}
                        class="form-check-input radio" type="radio"
                        name="active"
                        id="{{$post->active}}" value="1">
                <label class="form-check-label" for="exampleRadios1">
                    Active
                </label>
            </div>
            <div class="form-check">
                <input  {{  ($post->active) == 0 ? 'checked' : '' }}
                        class="form-check-input radio" type="radio" name="active" id="{{$post->active}}" value="0">
                <label class="form-check-label" for="exampleRadios1">
                    Inactive
                </label>
            </div>
        </div>
    </div>
    <input type="submit" value="Update"/>
</form>

请更新您的代码并尝试:

查看文件:

public function update(Request $request, $id)
    {

        //dd($request->all());

        $post = Post::find($id);
        $post->active = ($request->active == 'on') ? 1 : 0;
        $post->save();

        Session::flash('success', 'Post status updated.');
        return redirect()->back();
    }
public function edit($id)
{
    $post = Post::find($id);
    return view('posts.edit')->with('post', $post);
}
<form method="post" class="clearfix" action="{{route('posts.update', ['post_id' => $post->id])}}">
    {{csrf_field()}}
    <div class="form-group">
        <label>Active or Inactive</label>
        <div class="hide-first">
            <div class="form-check">
                <input  {{  ($post->active) == 1 ? 'checked' : '' }}
                        class="form-check-input radio" type="radio"
                        name="active"
                        id="{{$post->active}}" value="1">
                <label class="form-check-label" for="exampleRadios1">
                    Active
                </label>
            </div>
            <div class="form-check">
                <input  {{  ($post->active) == 0 ? 'checked' : '' }}
                        class="form-check-input radio" type="radio" name="active" id="{{$post->active}}" value="0">
                <label class="form-check-label" for="exampleRadios1">
                    Inactive
                </label>
            </div>
        </div>
    </div>
    <input type="submit" value="Update"/>
</form>

请更新您的代码并尝试:

查看文件:

public function update(Request $request, $id)
    {

        //dd($request->all());

        $post = Post::find($id);
        $post->active = ($request->active == 'on') ? 1 : 0;
        $post->save();

        Session::flash('success', 'Post status updated.');
        return redirect()->back();
    }
public function edit($id)
{
    $post = Post::find($id);
    return view('posts.edit')->with('post', $post);
}
<form method="post" class="clearfix" action="{{route('posts.update', ['post_id' => $post->id])}}">
    {{csrf_field()}}
    <div class="form-group">
        <label>Active or Inactive</label>
        <div class="hide-first">
            <div class="form-check">
                <input  {{  ($post->active) == 1 ? 'checked' : '' }}
                        class="form-check-input radio" type="radio"
                        name="active"
                        id="{{$post->active}}" value="1">
                <label class="form-check-label" for="exampleRadios1">
                    Active
                </label>
            </div>
            <div class="form-check">
                <input  {{  ($post->active) == 0 ? 'checked' : '' }}
                        class="form-check-input radio" type="radio" name="active" id="{{$post->active}}" value="0">
                <label class="form-check-label" for="exampleRadios1">
                    Inactive
                </label>
            </div>
        </div>
    </div>
    <input type="submit" value="Update"/>
</form>

您的表单应该如下所示:

<form method="post" class="clearfix" action="{{route('posts.update', ['post_id' => $post->id])}}">
    {{csrf_field()}}
    <div class="form-group">
        <label>Active or Inactive</label>
        <div class="hide-first">
            <div class="form-check">
                <input  {{  old('active', $post->active) ? 'checked' : '' }}
                        class="form-check-input radio"
                        type="radio"
                        name="active"
                        id="active"
                        value="1">
                <label class="form-check-label" for="exampleRadios1">
                    Active
                </label>
            </div>
            <div class="form-check">
                <input  {{  old('active', $post->active) ? '' : 'checked' }}
                        class="form-check-input radio"
                        type="radio"
                        name="active"
                        id="inactive"
                        value="0">
                <label class="form-check-label" for="exampleRadios1">
                    Inactive
                </label>
            </div>
        </div>
    </div>
    <input type="submit" value="Update"/>
</form>
public function update(Request $request, $id)
{
    $post = Post::find($id);
    $post->active = !!$request->active;
    $post->save();

    Session::flash('success', 'Post status updated.');
    return redirect()->back();
}

您的表单应该如下所示:

<form method="post" class="clearfix" action="{{route('posts.update', ['post_id' => $post->id])}}">
    {{csrf_field()}}
    <div class="form-group">
        <label>Active or Inactive</label>
        <div class="hide-first">
            <div class="form-check">
                <input  {{  old('active', $post->active) ? 'checked' : '' }}
                        class="form-check-input radio"
                        type="radio"
                        name="active"
                        id="active"
                        value="1">
                <label class="form-check-label" for="exampleRadios1">
                    Active
                </label>
            </div>
            <div class="form-check">
                <input  {{  old('active', $post->active) ? '' : 'checked' }}
                        class="form-check-input radio"
                        type="radio"
                        name="active"
                        id="inactive"
                        value="0">
                <label class="form-check-label" for="exampleRadios1">
                    Inactive
                </label>
            </div>
        </div>
    </div>
    <input type="submit" value="Update"/>
</form>
public function update(Request $request, $id)
{
    $post = Post::find($id);
    $post->active = !!$request->active;
    $post->save();

    Session::flash('success', 'Post status updated.');
    return redirect()->back();
}

您的单选按钮中是否缺少
value='1'
value='0'
?它说它是“开”的,因为其中一个收音机被检查了,它们没有价值。谢谢,但是它总是存储“0”,即使它显示为“活动”=>“1”。不要忘记更改
$post->active=($request->active=='on')1:0;
对于一些看起来像
$post->active=$request->active
check@AddWeb Solution Pvt Ltd answer的东西,我的回答非常概括了我在这里所说的,你的单选按钮中没有
value='1'
value='0'
吗?它说它是“开的”,因为其中一个收音机被选中了,它们没有任何价值因此它总是存储“0”,即使它显示为“活动”=>“1”。不要忘记更改
$post->active=($request->active=='on')?1 : 0;到一些看起来像是
$post->active=$request->active
check@AddWeb Solution Pvt Ltd answer的东西,基本上总结了我在这里所说的内容