Laravel ErrorException:尝试获取非对象的属性

时间:2017-11-01 17:42:29

标签: laravel view blade

我正在建立一个类似于Elance的就业市场。在作业详细信息页面中,还有提案表单。用户可以填写表格并点击提交。 (参考;前Elance工作细节页面)

现在,如果用户想要编辑他们的提案数据,他们可以在他们的仪表板中点击该作业的编辑,他们将再次访问此作业详细信息页面。但这一次,表格将预先填充数据。

这是作业详细信息方法和requestdetail视图@includes apply(提案)表单。

public function requestdetail($reqid){
if ($user = Auth::User()) {
    $gigs = Gig::where('user_id','=',$user->id)->get();
}

    $request = UserRequest::with('request_desc','user.profile')
        ->findOrFail($reqid);

    $proposals = Proposal::with('user')
        ->where('request_id','=',$reqid)
        ->orderBy("proposals.created_at","desc")
        ->get();

    return view('user.frontend.public.requestdetail',
        compact('reqid','request','proposals','gigs','countProp'));
}

这是编辑提案方法:

public function edit($proposalid){
    $proposal = Proposal::where('id',$proposalid)->first();
    $reqid = $proposal->request_id;
    $gigid = $proposal->gig_id;

    if ($user = Auth::User()) {
        $gigs = Gig::where('user_id','=',$user->id)->get();
    }

    $request = UserRequest::with('request_desc','user.profile')
        ->findOrFail($reqid);

    $proposals = Proposal::with('user')
        ->where('request_id','=',$reqid)
        ->orderBy("proposals.created_at","desc")
        ->get();

    return view('user.frontend.public.requestdetail',       compact('proposal','reqid','gigid','gigs','countProp','request','proposals'));
}

这是提案表单中的字段:

<div class="row">
                    <div class="col-lg-12">
                        <label>Description</label>
                        <textarea id="description" value="{{ $gigid->desc }}" name="description" style="min-height:100px;" class="form-control" rows="5" required=""></textarea>
                    </div>
                </div>

当我查看工作详细信息页面时,它会给我错误:

ErrorException: Trying to get property of non-object

我相信,它是用$ gigid做的,但我该如何解决这个问题呢?如何在此处理创建和编辑部分?

2 个答案:

答案 0 :(得分:0)

查看您的代码:

$gigid = $proposal->gig_id;

$gigid包含数字

所以在你看来:

$gigid->desc

会导致问题。因此,您应该在视图中使用其他变量,而不是$gigid

答案 1 :(得分:0)

我找到了;添加isset()就可以了;它的工作完美。现在,我的代码如下所示:

{{ isset($proposal->deadline)?$proposal->deadline:'' }}

谢谢