2016-02-13 2 views
0

У меня есть эта функция:Невозможно добавить данные из запроса с Laravel

public function store(Requests\OfferRequest $request) 
    { 

      $offer = new Offer($request->all()); 

      Auth::user()->offer()->save($offer); 

      $maxoffer = Maxoffer::where('article_id', $request->input('article_id')) 
         ->where('start', $request->input('start'))->get(); 

    if($maxoffer == null) 
    { 
     Auth::user()->maxoffer()->create($request->all()); 
    } 
    else 
    { 
     if($maxoffer->price < $request->input('price')) 
     { 
     $newOffer = Auth::user()->maxoffer() 
        ->where('id', $maxoffer->id) 
        ->update(['price'=>$request->input('price')]); 
     } 
    } 

     Alert::success('Offer is succesfully added!', 'Good job!')->persistent("Close"); 

     return Redirect::back(); 

    } 

, но я не могу добавить данные, потому что я получил это:

ErrorException в OffersController.php линии 63: Неопределенное свойство: Illuminate \ Database \ Eloquent \ Collection :: $ price in OffersController.php строка 63 в HandleExceptions-> handleError ('8', 'Неопределенное свойство: Illuminate \ Database \ Eloquent \ Collection :: $ price', 'C: \ wamp \ www \ bidbook \ app \ Htt p \ Controllers \ OffersController.php ',' 63 ', array (' request '=> object (OfferRequest),' offer '=> объект (предложение), ' maxoffer '=> объект (коллекция))) в OfferController .php 63

В чем проблема?

+0

какой результат dd ($ maxoffer)? – paranoid

+0

null ....................... но почему, что не так: $ maxoffer = Maxoffer :: where ('article_id', $ request-> input ('article_id')) -> где ('start', $ request-> input ('start')) -> get(); – MonkeyBusiness

+1

и какой результат dd ($ request-> all()); – paranoid

ответ

0

Попробуйте это

$maxoffer = Maxoffer::where('article_id', $request->['article_id']) 
        ->where('start', $request->['start'])->get(); 
+0

hm, нет, это то же самое, но я получаю сбор не массив - FatalErrorException в строке OffersController.php 54: синтаксическая ошибка, неожиданная '[', ожидающий идентификатор (T_STRING) или переменная (T_VARIABLE) или '{' или '$' – MonkeyBusiness

+0

Этот ответ не объясняет, что вы считаете неправильным, и почему ваше изменение исправит его. Кроме того, он вводит синтаксические ошибки, которые определенно не будут устранять проблему. – patricus

1

Следующие возвращает коллекцию:

$maxoffer = Maxoffer::where('article_id', $request->input('article_id')) 
        ->where('start', $request->input('start')) 
        ->get(); // Returns a collection 

Таким образом, вы получите ошибку. Просто измените get на first, например:

$maxoffer = Maxoffer::where('article_id', $request->input('article_id')) 
        ->where('start', $request->input('start')) 
        ->first(); // Returns a single Eloquent Object 

Теперь это будет возвращать один Eloquent Model объект и будет работать, если была обнаружена какая-либо модель.

+0

Проблема заключается в том, что мой запрос $ request-> ('start') составляет 2016-02-02 12:00 и начинается с базы данных 2016-02-02 00:00:00 ... Как решить эту проблему? Преобразовать с помощью углеродного запроса $ request-> ('start')? – MonkeyBusiness

+1

Каков твой тип данных для поля, надеюсь, что это временная метка. –

+0

да, offcource ts timestamp ... – MonkeyBusiness

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