如何在Laravel中以编辑形式绑定数据库中的单选按钮值?

时间:2019-07-14 06:56:22

标签: php laravel laravel-5.8

我已经创建了 from.blade.php 表单,用于创建 create.balde.php 和编辑 edit.blade.php 。我正在使用该表单执行两个操作,但是在检索数据并将其显示为单选按钮时遇到了一个问题。知道在创建操作时,单选按钮将是默认设置。

此表格:

<div class="form-group">
    <div class="form-check form-check-radio">
        <label class="form-check-label">
            {{-- {{ ($news->status=="1")? "checked" : "" }} --}}
            <input class="form-check-input" {{ $page->status == '1' ? 'checked' : '' }} type="radio" name="status"
                   id="exampleRadios1" value="0" checked>
            Status is off
            <span class="circle">
                <span class="check"></span>
            </span>
        </label>
    </div>
    <div class="form-check form-check-radio">
        <label class="form-check-label">
            <input class="form-check-input" type="radio" {{ $page->status == '1' ? 'checked' : '' }} name="status"
                   id="exampleRadios2" value="1">
            Status is on
            <span class="circle">
                <span class="check"></span>
            </span>
        </label>
    </div>
</div>

{{ $page->status == '1' ? 'checked' : '' }}适用于编辑 但是当我去create.blade.php时,出现以下错误:

  

未定义变量:页面(查看:   C:\ Users \ PC \ Desktop \ khaleej_aden \ resources \ views \ pages \ includes \ form.blade.php)   (视图:   C:\ Users \ PC \ Desktop \ khaleej_aden \ resources \ views \ pages \ includes \ form.blade.php)


但是如果我删除了这些行, create.blade.php 可以完美地工作。 那么我可以在{{ $page->status == '1' ? 'checked' : '' }}中进行哪些更改以使其同时适用于创建和更新?

2 个答案:

答案 0 :(得分:0)

最简单且不那么丑陋的方法是将一个空的Page实例从您的控制器传递给该页面,因此是这样的:

$page = new Page;

return view('create', compact('page'));

这样,您可以避免每次要在视图中使用page变量时进行检查。

答案 1 :(得分:0)

您还可以更改代码以检查对象,然后再检查状态

{{ (isset($page->status) && $page->status == '1') ? 'checked' : '' }}