Php 叶片模板上未显示变量

Php 叶片模板上未显示变量,php,laravel,laravel-5,Php,Laravel,Laravel 5,我正在创建一个CRUD,其中包含两个模型:自动和规则。1自动化有1条规则。在编辑表单上,我需要显示来自自动和规则的字段。 这是我的编辑方法控制器 public function edit($id) { $actions = array( 1 => 'Enable', 2 => 'Pause', ); $fields = \DB::table('fields') ->whereNull('

我正在创建一个CRUD,其中包含两个模型:自动和规则。1自动化有1条规则。在编辑表单上,我需要显示来自自动和规则的字段。 这是我的编辑方法控制器

public function edit($id)
{

    $actions = array(
            1 => 'Enable',
            2 => 'Pause',
        );

    $fields = \DB::table('fields')
    ->whereNull('field1_id')
    ->lists('field_name', 'id');

    $schedules = \DB::table('schedules')
    ->lists('schedule_name', 'id');

    $rules = \DB::table('rules')
        ->where('automation_id', '=', $id)
        ->get();


    return view('automations.automations', [
        'automations' => Automations::find($id),
        'actions' => $actions,
        'fields' => $fields,
        'schedules' => $schedules,
        'rules' => $rules
    ]);
但在我的表单上,我无法显示规则中的值,只能用于自动操作。我做错了什么?这是规则中1个字段的刀片形式:

<div class="form-group">


    <label for="task-name" class="col-sm-3 control-label">Field 1 </label>
            <div class="col-sm-6">
                {!! 

                    Form::select(   
                        'field1', 
                        (['' => 'Select a Field'] + $fields), 
                        (isset($rules->field1) ? $rules->field1 : null),  
                        ['class' => 'form-control','id' => 'field1']
                    ) 


                !!}
            </div>
            </div>

字段1
{!! 
表格::选择(
“字段1”,
([''=>'选择一个字段']+$fields),
(isset($rules->field1)?$rules->field1:null),
['class'=>'表单控件','id'=>'字段1']
) 
!!}
对于自动化的1个字段:

<div class="form-group">
            <label for="task-name" class="col-sm-3 control-label">Action on Campaigns</label>
            <div class="col-sm-6">
                {!! 

                    Form::select(   
                        'action_id', 
                        (['' => 'Select an Action'] + $actions), 
                        (isset($automations->action_id) ? $automations->action_id : null),  
                        ['class' => 'form-control']
                    ) 


                !!}
            </div>
            </div>

关于运动的行动
{!! 
表格::选择(
“行动id”,
([''=>'选择一个动作']+$actions),
(isset($automations->action\u id)?$automations->action\u id:null),
['class'=>'表单控件']
) 
!!}
DB::get()
返回stdClass对象数组。因此,
$rules
是一个数组,因此您不能只访问属性,如
$rules->field1
。您需要迭代数组以找到正在查找的实际对象,然后检查该对象。或者,如果实际上只有一条记录,可以使用
first()
而不是
get()

DB::find()
返回
stdClass
对象或null,具体取决于是否找到记录。这就是你的自动程序工作的原因。

生成
dd($rules)
并检查输出内容,同时你正在使用
get()
调用
$rules->isEmpty()
如果对象为空或不只是为了检查,它将返回)()