2014-12-04 6 views
0

У меня есть проблема с новой записи к даннымLaravel новой записи

Существует часть видеоконтроллер:

$galleryName = Input::get('name'); 
    $galleryID = Foto::create($galleryName); 

здесь модель:

class Foto extends Eloquent { 

    public static function create($name) 
    { 
     return DB::table('galleries')->insert_get_id(array('name' => $name)); 
    } 
} 

Декларация Foto::create() должна быть совместимый с

Illuminate\Database\Eloquent\Model::create(array $attributes) 

Что я должен исправить?

+0

Как @JosephSilber, или использовать 'Input :: только ('имя') ', который возвращает массив одиночных элементов. –

ответ

0

Метод create Eloquent принимает массив. Вы не можете это изменить.

Если вам нужна эта функция, создайте другой метод:

public static function createFromName($name) 
{ 
    return DB::table('galleries')->insertGetId(compact('name')); 
} 

затем использовать это в вашем контроллере:

$galleryName = Input::get('name'); 

$galleryID = Foto::createFromName($galleryName); 
+0

, когда я хочу добавить массив в базу данных: $ tab = array ('name' => 'Input :: get ('name'), 'user_id' => Auth :: id()); \t \t Foto :: create ($ tab); 'как должна выглядеть модель? – Jensej

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