2013-11-18 6 views
3

Я пытаюсь сделать базу данных в моей новой таблице базы данных.Laravel 4 Call to undefined method create()

ProductSeeder.php

class ProductSeeder extends DatabaseSeeder { 

public function run() 
{ 
    $products = array(
     array(
      'name' => 'DSLR D300S (body only)', 
      'image' => 'D300S_16_85_front34l_i.jpg', 
      'stock' => 'Available', 
      'price'=>'5188.00' 
      ) 
     ); 


    foreach ($products as $product) { 
     Product::create($product); 
    } 
} 
} 

модель/product.php

class Product extends Eloquent{ 
} 

Однако, когда я бегу db:seed он говорит: "Призыв к неопределенному методу продукта :: Create()".

Как я могу его решить? Спасибо.

ответ

-1

Класс Продукт должен иметь метод Create.

class Product extends Eloquent{ 

    public function create($product) 
    { 
     // Do something 
    } 

} 
+3

Красноречивого есть метод создания без необходимости, чтобы сделать его сам... –

0

Лучшая практика для семян в Laravel заключается в использовании «DB :: таблицу()»:

class ProductSeeder extends DatabaseSeeder { 

    public function run() 
    { 

     $products = array(
          array(
           'name' => 'DSLR D300S (body only)', 
           'image' => 'D300S_16_85_front34l_i.jpg', 
           'stock' => 'Available', 
           'price'=>'5188.00' 
           ) 
         ); 

     foreach ($products as $product) { 
      DB::table('products')->insert($products); 
     } 

    } 

} 
3

При посеве базы данных, опираясь на модели не особенно хорошая идея, это происходит на первый план, когда вы пытаетесь провести тестирование (тестирование базы данных) своих моделей через репозитории.

Вместо этого используйте построитель необработанных запросов (с плавным интерфейсом).

DB::table('products')->insert(array(...)); 
0

Не могу сказать, если это ваша проблема, но я получаю эту ошибку из-за опечатки в моем файле сеялка

Вместо

Product::create($product); 

Я имел

// note only one semicolon 
Product:create($product); 

Это в любом случае, безусловно, вызывает ту же ошибку!

PHP Fatal error: Call to undefined function create() 

Так я определенно рекомендую вам проверить ваш код еще раз

Также я был только extendting Сеялки и не DatabaseSeeder Так же попробуйте

class ProductSeeder extends Seeder { 
Смежные вопросы