让我们采用像
这样的简单视图元素 {{ Form::select('license',$licenses, $selectedLicenses->value, array('class'=>'form-control')) }}
依赖控制器返回
return View::make('user.cv.4', array('licenses'=> $licences,'selectedLicenses' => $selectedLiceses,)
问题是,如果用户第一次创建cv $licenses
将NULL
并且编译器抛出类似$selectedLicenses->value Trying to get property of non-object
的错误。
所以问题是如何做到这一点$selectedLicenses->value
如果父变量$selectedLiceses
也将为NULL?没有任何if语句可以做到这一点吗?我想保持我的代码尽可能简单。
我正在使用php和laravel框架。我的模型看起来像
class License extends Eloquent{
protected $table = 'license';
protected $fillable = array('value','licenseStart','licenseEnd');
public $timestamps = false;
}
答案 0 :(得分:1)
我不认为你可以在没有if的情况下做到。
你可以用速记内联:
{{ Form::select('license',$licenses, ($selectedLicenses != null ? $selectedLicenses->value : null), array('class'=>'form-control')) }}
或者在注入之前将值设置为null。
if($selectedLicenses == null){
$selectedLicenses = (object) array('value' => null);
}
// return View::make etc...
答案 1 :(得分:0)
在这种情况下使用三元运算符,如下所示
$value = ($selectedLicenses) ? $selectedLicenses->value : '';
看,如果有效。