用laravel(Undefined属性)存储的麻烦?

时间:2014-01-08 21:09:15

标签: php laravel laravel-4

我正在尝试使用laravel将数据存储到服务器。我正在关注一个教程,我觉得它可能会稍微过时,因为我之前使用更新方法得到了500错误。

public function store()
{
    $input = Input::json();

    return Player::create(array( 
        'teamName' => $input->teamName, // this is line 35
        'teamColor' => $input->teamColor
    ));
}

上面是教程的语法,我也尝试了下面的内容。

public function store()
{
    $input = Input::all();

    return Player::create(array( 
        'teamName' => $input['teamName'], // this is line 35
        'teamColor' => $input['teamColor']
    ));
}

在浏览器中我收到此错误。

{"error":{"type":"ErrorException","message":"Undefined property: Symfony\\Component\\HttpFoundation\\ParameterBag::$teamName","file":"C:\\wamp\\www\\basketball-app-framework\\app\\controllers\\PlayersController.php","line":35}}

所以我觉得这些问题我应该能在几秒钟内弄明白,但我很新,真的不知道在哪里可以找到明确的答案。我试着搜索文档,但我找不到我要找的东西,也许我是在盲目?

1 个答案:

答案 0 :(得分:2)

尝试使用:

public function store()
{
    return Player::create(array( 
        'teamName' => Input::get('teamName'),
        'teamColor' => Input::get('teamColor')
    ));
}

获取质量分配错误,意味着您需要编辑模型并向其添加$ fillable变量:

class Player extends Eloquent {

   protected $fillable = array('teamName', 'teamColor');

}

Laravel试图保护您免受大规模分配的影响,因此您必须告诉它哪些列可以批量分配。

请求(输入)文档:http://laravel.com/docs/requests

CheatSheet:http://cheats.jesse-obrien.ca/

批量作业:http://laravel.com/docs/eloquent#mass-assignment