“试图获取非对象的属性'id'” Laravel-Auth :: id()命令

时间:2019-10-01 13:27:17

标签: php laravel

这是我来自DatatablesController.php的代码示例

$id = Auth::user()->id;
   $data = Cdr::
      select('src','dst','start','duration','billsec','disposition','uniqueid')
      ->where('billsec','>', '0')
      ->where('start','>=',Carbon::today())
      ->join('alt_portal.numbers', 'nr','=','dst') 
      ->where('alt_portal.numbers.user_id','=',$id)
      ->get(); 

我正在做Laravel项目,其中会有很多用户。每个用户都有自己的号码。基本上,我试图从数据库中仅选择那些属于特定用户的号码,换句话说,就是登录用户的ID,因为用户只能在表中看到他/她的呼出和呼入电话。

当我尝试这样做时:

$id = Auth::user()->id;
...
->where('alt_portal.numbers.user_id','=',$id)

我在浏览器中收到一条消息,对应于一个错误:

  

消息:“试图获取非对象的属性'id'”

有人知道如何解决此问题吗?

P.S。我是Laravel的新手。

1 个答案:

答案 0 :(得分:0)

案例已关闭。谢谢你们的回应!我设法解决了问题。

我在这里找到了解决方法:ANSWER 但是我将堆栈直接添加到中间件中,而不是添加到“ web”组中。

这是我的/Http/kernel.php文件:

if (!IsPostBack)
{
    decimal total = decimal.Parse(txtValorTotal.InnerHtml);

    if (total < 500)
    {
        string val = string.Format("{0:#.00}", Convert.ToDouble(total) * 0.987);
        rblParcelamento.Items.Add(new ListItem("1 x " + string.Format("{0:#.00}", val) + " - Prazo: 7 dias", "1"));
    }
    else
    {
        string val = string.Format("{0:#.00}", Convert.ToDouble(total) * 0.987);
        rblParcelamento.Items.Add(new ListItem("1 x " + string.Format("{0:#.00}", val) + " - Prazo: 28 dias", "1"));
    }

    if (total >= 1000)
    {
        string val = string.Format("{0:#.00}", total / 2);
        rblParcelamento.Items.Add(new ListItem("2 x " + val + " - Prazo: 21/35 ddl", "2"));
    }

    if (total >= 1500)
    {
        string val = string.Format("{0:#.00}", total / 3);
        rblParcelamento.Items.Add(new ListItem("3 x " + val + " - Prazo: 21/28/35 ddl", "3"));
    }

    if (total >= 2000)
    {
        string val = string.Format("{0:#.00}", total / 4);
        rblParcelamento.Items.Add(new ListItem("4 x " + val + " - Prazo: 21/28/35/42 ddl", "4"));
    }

    rblParcelamento.SelectedIndex = 0; //you first need to select your item, in this case, the first one

    //rblParcelamento.SelectedValue = "1"; //this also works

    //rblParcelamento.SelectedItem => this could work if you save a variable with (new ListItem)
}

string rblValue = rblParcelamento.SelectedItem.Value; //then you can get the value of the selected item