【发布时间】:2018-06-15 13:04:36
【问题描述】:
好的,当我尝试使用 $settings = AdminSettings::first(); 从数据库中获取数据时,我得到了 Trying to get property of non-object
这里是控制器代码
<?php
namespace App\Http\Controllers\AdminSettings;
use App\AdminSettings\AdminSettings;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class AdminSettingsController extends Controller
{
public function index()
{
$settings = AdminSettings::first();
return view('admins.settings.settings', compact('settings'));
}
}
这里是模态代码
<?php
namespace App\AdminSettings;
use Illuminate\Database\Eloquent\Model;
class AdminSettings extends Model
{
protected $table = 'site_settings';
protected $fillable = [
'site_title', 'site_url', 'email_from', 'email_to', 'timezone', 'date_format', 'time_format',
];
}
我想在这里输入site_title into the input but I get Trying to get property of non-object
<div class="form-group">
<label for="site_title" class="form-label">Site Title</label>
<input type="text" class="form-control" name="site_title" id="site_title" value="{{ $settings->site_title }}"/>
</div>
当我尝试dd($settings); 时,我得到null
【问题讨论】:
-
你确定,表中有记录吗?
-
@commonsense 不我确保表是空的,因为用户可以在访问页面后添加设置并单击保存更改,然后将设置添加到我只是想显示的数据库中`{{ $settings->tsite_title }} 一旦用户添加数据
-
如果表为空,
first()将为空,因此尝试访问其上的数据将不起作用。就那么简单。在尝试使用之前检查是否存在设置记录。 -
@ceejayoz 哦,好吧,因为我记得以前做过这样的事情
-
我会使用播种机,它使用基本数据创建第一条记录。
标签: php laravel laravel-5 laravel-query-builder