2015-06-11 6 views
1

Im получение различных данных из моей базы данных.Добавление данных в красноречивую коллекцию?

Product::with('users'); 

У меня также есть toe выполнить сложный необработанный запрос, чтобы получить некоторую информацию. Это возвращается как массив.

В моем методе я хотел бы получить продукты с пользователями, а затем добавить данные из моего сырого запроса в эту коллекцию, но эти данные возвращаются как массив. Что-то вроде:

Product::with('users'); 
Product->extraData = $rawQuery; 

Как добавить исходный вывод запроса в свою коллекцию продуктов?

+0

http://laravel.com/docs/5.1/collections#method-put? – haakym

ответ

0

При использовании Eloquent Facade like Product :: в результате вы получите объект Eloquent Model в результате или объект Eloquent Collection, включая результаты, полученные методом get или доступ через отношения.

Теперь, если я правильно понимаю, вам нужно добавить одно свойство extraData в модель коллекции Eloquent Collection вместе с элементами коллекции? Или вам нужно добавить дополнительные данные для каждого продукта?

  • Если вам нужно добавить дополнительное свойство к объекту Eloquent Collection, возможно, это хорошая идея использовать пользовательскую коллекцию. Пожалуйста, прочитайте этот раздел: http://laravel.com/docs/5.1/eloquent-collections#custom-collections.

    <?php namespace App; 
    
    use App\CollectionWithExtraData; 
    use Illuminate\Database\Eloquent\Model; 
    
    class User extends Model 
    { 
    
        public function newCollection(array $models = []) 
        { 
         return new CollectionWithExtraData($models); 
        } 
    } 
    

    А может быть, ваши CollectionWithExtraData может быть допустим

    public function setExtraData() { 
    
    } 
    

    или

    public $extraData = array(); 
    
  • Если вам нужно ExtraData для каждого продукта Eloquent модели, просто создать новый атрибут в вашей Eloquent Модель, сделайте ее общедоступной и при необходимости добавьте дополнительные данные. Используйте метод setExtraData() и свойство $ extraData сверху

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