如何通过laravel中的参数中的$请求传递if语句



我在这里真正的泡菜。我有一个网页,可以在表中显示人们的名字。在此表中有一个选择表格,我指出它们是否是"好面条"。在数据库中,良好的面条变量是布尔值。我将在下面放置我的代码。我的问题是,我无法让它更新我在好的面条选项中选择的内容,以使重新存在的兄弟的记录。

当我尝试打印出来并查看值是什么时,它可以正常工作。但是无论出于何种原因,它都不会更新记录。

我的控制器:

public function update(Request $request)
{
    $brothers = Brother::all();
    foreach ($brothers as $b){
        $b->GoodNoodle = $request['goodNoodle'];
        $b->save();
        //Failed attempt #1
        //if ($request['goodNoodle'] == "No"){
            //$b->GoodNoodle = "0";
            //$b->save();
            //}
        //else{
            //$b->GoodNoodle = "1";
            //$b->save();
            //}
        //Failed Attempt #2 ive also tried every variation of this
        //if($b['goodNoodle'] != $request['goodNoodle']){
          //$b->GoodNoodle = $request->goodNoodle;
          //$b->save();
        //}
    }
}

我的blade.php:

<form method="Post" action="{{route('update_brother')}}">
            <input type="hidden" name="_token" value="{{csrf_token()}}">
            <table class="table">
                <tbody class="text-center">
                <tr>
                    <th>Good Noodle</th>
                    <th>Brother Name</th>
                    <th>Brother Class</th>
                    <th>Zeta Number</th>
                </tr>
                @foreach($brothers as $b)
                    <tr>
                        <td>
                            <select class="form-control" id="exampleFormControlSelect1" name="goodNoodle">
                                <option value="1">Yes</option>
                                <option value="0"{{!$b["goodNoodle"]? "selected": ""}}>No</option>
                            </select>
                        </td>
                        <td>
                            {{$b->fName.' '.$b->lName}}
                        </td>
                        <td>
                            {{$b->zetaClass}}
                        </td>
                        <td>
                            <input type="hidden" name="zetaNum">{{$b->zetaNum}}
                        </td>
                    </tr>
                @endforeach
                </tbody>
            </table>
            <input class="btn btn-primary btn-block" type="submit" value="Submit">
        </form>

这里有一些线索。如果我这样做:

$value = $request->GoodNoodle; //with $value being equal to 1
if $b['goodNoodle'] = $value{
   $b->goodNoodle = "0"
} 

然后,它将我的所有记录更改为0。但是如果我这样做

$value = $request->GoodNoodle; //with $value being equal to 1
if $b['goodNoodle'] = $value{
   $b->goodNoodle = $value
} 

它不会做任何事情。请帮忙。

您也可以使用三元运算符。

<select class="form-control" id="exampleFormControlSelect1" name="goodNoodle">
    <option value="0" {{ $b->goodNoodle == '0' ? 'selected' : '' }}>No</option>
    <option value="1" {{ $b->goodNoodle == '1' ? 'selected' : '' }}>Yes</option>
</select>

如果要比较DB的值,并从请求中进行此操作:

if ($b['goodNoodle'] == $request->goodNoodle)

而不是:

if($b['goodNoodle'] = $request->goodNoodle])

您应该更改以下选择框:

<select class="form-control" id="exampleFormControlSelect1" name="goodNoodle">
 <option value="0" @if($b->goodNoodle == '0') selected @endif>No</option>
 <option value="1" @if($b->goodNoodle == '1') selected @endif>Yes</option>
</select>

最新更新