在我的视图上检索新对象时遇到一个小问题。我一直收到错误'试图获取非对象的属性'。
我想要展示的领域' oil_gas_skillsgap'是一个有效的字段,当我做一个简单的返回它吐出...
[{" oil_gas_job_id":" 4"" industry_job_id":" 43"" oil_gas_skillsgap&#34 ;: "在这里测试文字"}]
CONTROLLER
public function showjob($slug)
{
$job = OilGasJob::where("slug", "=", $slug)->first();
if (is_null($job))
{
return Redirect::to('/');
} else {
$jobId = $job->id;
$roleId = Session::get('industryrole');
$skills = DB::table('industry_job_oil_gas_job')
->where('oil_gas_job_id', '=', $jobId)
->where('industry_job_id', '=', $roleId)
->get();
return View::make('job')
->with('job', $job)
->with('skills', $skills);
}
}
查看
{{ $job->job_title}}
{{ $skills->oil_gas_skillsgap }}
答案 0 :(得分:2)
$skills
可能是array
,而不是object
,即使查询只有一个结果。
如果您知道您的查询会返回一个结果,请使用first()
,然后直接将其作为对象。
$skills = DB::table('industry_job_oil_gas_job')
->where('oil_gas_job_id', '=', $jobId)
->where('industry_job_id', '=', $roleId)
->first();
否则,请记住以下内容:当使用DB
类进行查询时,Laravel将始终返回array
。如果您使用Eloquent
模型,它将返回Illuminate\Support\Collection
个对象。在这两种情况下,即使没有找到行也是如此(array
或Collection
将为空)。另一方面,first()
方法将返回object
(使用数据库时为stdClass
,使用Eloquent
时)或null
时返回模型。
答案 1 :(得分:0)
@ user3189734,
job_title不是$ job集合的一部分,这就是为什么它会抛出'试图获取非对象的属性'。