【问题标题】:Laravel ErrorException: Trying to get property of non-objectLaravel ErrorException:试图获取非对象的属性
【发布时间】:2018-04-14 02:48:25
【问题描述】:

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

现在,如果用户想要编辑他们的提案数据,他们可以在仪表板中点击该职位的编辑,然后他们将再次来到此职位详细信息页面。但这一次,表单将预先填写数据。

这是工作细节方法和requestdetail视图@includes apply(proposal)表单。

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 相关,但我该如何解决这个问题?这里如何处理创建和编辑部分?

【问题讨论】:

  • 您要在 textarea 中访问哪个描述? gig 还是 proposal
  • 是的,我改为: value="{{ $proposal->desc?$proposal->desc:'' }}" 但是当我进入工作详细信息页面时,现在我得到:ErrorException未定义变量:提案

标签: laravel view blade


【解决方案1】:

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

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

谢谢

【讨论】:

  • 你在哪里写的?
  • 我把这个 isset() 检查放在提案表格的所有字段中。因此,如果它尚未设置,那么它将采用 ' ',并防止“ErrorException: Trying to get property of non-object”错误。
【解决方案2】:

查看您的代码:

$gigid = $proposal->gig_id;

$gigid 包含数字

所以在你看来:

$gigid->desc

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

【讨论】:

  • 是的,我改为: value="{{ $proposal->desc?$proposal->desc:'' }}" 但是当我进入工作详细信息页面时,现在我得到:ErrorException未定义变量:提案
  • @chuck 这是正确的,因为在requestdetail 方法的控制器中,您只有$proposals 而不是$proposal。所以如果你想使用它,你应该在控制器中设置这个变量。
猜你喜欢
  • 2017-08-02
  • 1970-01-01
  • 1970-01-01
  • 2020-09-30
  • 1970-01-01
  • 2021-07-19
  • 2016-11-30
  • 2017-02-25
  • 1970-01-01
相关资源
最近更新 更多