2014-01-08 3 views
0

Я пытаюсь хранить данные на сервере с laravel. Я следую учебному курсу, и я чувствую, что он может быть немного устаревшим, потому что раньше я получал ошибку 500 с помощью метода обновления.Сохранение неисправностей с laravel (Неопределенное свойство)?

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

Не могли бы вы выполнить команду wasd ($ input = Input :: all()) и показать нам результат? –

+0

Да, одна секунда. Я выполнил его, где я вижу ответ? Это метод response_text возвращает метод POST? –

+0

array (size = 2) 'teamName' => string 'Bulls' (length = 5) 'teamColor' => string '' (length = 0) Я уверен, что это правильный ответ. –

ответ

2

Попробуйте использовать:

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

Получение ошибки массового назначения, означает, что вы должны изменить свою модель и добавить переменную $ заполняемых к нему:

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.

+0

О, спасибо, человек, я не знал о 'Input :: get', это где-то в документах laravel. Есть ли источник или чит-лист, на который я могу посмотреть, нужны ли мне идеи для разных способов взаимодействия с данными? –

+1

Документация для ввода находится здесь: http://laravel.com/docs/requests. И вот чит-лист: http://cheats.jesse-obrien.ca/. –

+0

Хорошо, спасибо, мне нужно выяснить лучшую стратегию поиска документов. Я все еще получаю ошибку, хотя '{" error ": {" type ":" Illuminate \\ Database \\ Eloquent \\ MassAssignmentException "," message ":" teamName "," file ":" C: \\ wamp \ \ www \\ баскетбол-приложение-каркас \\ поставщик \\ laravel \\ framework \\ src \\ Illuminate \\ Database \\ Eloquent \\ Model.php "," строка ": 333}}' Возможно, мне нужно проверить несколько вещей под капотом, спасибо за помощь. Almsot там я чувствую это –

Смежные вопросы