2017-09-25 106 views
1

我想从一个窗体获取数据并将其保存到另一个具有修改的数据库表中。但是,我得到错误:Laravel访问控制器内数据库的数据

trying to get property of non-object

从给定代码块的最后一行。

$ply->team_name = $request->get('team_name'); 

    $team_name=$ply->team_name; 
    $team=Team::find($team_name); 
    $team->balance=$team->balance-$ply->sold_amount; 
+0

最有可能的$团队是空的,因为它没有在前一行找到。 – Matey

+1

问题出现在这里'$ team = Team :: find($ team_name);'find等同于id = $ var所以它会返回null来修正它试试这个'$ team = Team :: where('name' ,$ team_name) - > get();' – Maraboc

回答

1

当您给它一个字符串时,find方法需要一个id作为参数。

Model::find($id); 

您可以使用where子句:

Model::where('name', $name)->first(); 
/* 
* Or 
*/ 
Model::where('name', $name)->get(); 

Aftet,你应该检查你的$团队是不是要访问它的属性之前空。

最后,我强烈建议使用dd($var)进行调试,这是非常有帮助的。

+0

这里没有问题'$ team-> balance = $ team-> balance- $ ply-> sold_amount;'这相当于'$ team-> balance - = $ ply-> sold_amount;';) – Maraboc

+0

糟糕,编辑答案。 –

+0

没关系。我也忘了改变主键。 –