Laravel 创建方法

Nav*_*age 1 php laravel laravel-4

我正在尝试使用 Laravel 的create方法存储数组

$input = Input::all();
$new_media = $this->media->create($input);
Run Code Online (Sandbox Code Playgroud)

或者

$input = Input::all();
$new_media = Media::create($input);
Run Code Online (Sandbox Code Playgroud)

两个代码都不起作用。

这是我得到的错误。

Method [create] does not exist.
Run Code Online (Sandbox Code Playgroud)

Laravel 文档在这里http://laravel.com/docs/4.2/eloquent

来自 Laravel 文档

// Create a new user in the database...
$user = User::create(array('name' => 'John'));
Run Code Online (Sandbox Code Playgroud)

媒体模型

<?php

class Media extends Eloquent {

    protected $table = 'media';

    protected $guarded = array();

    public static $rules_video = array(
        'title' => 'required',
        'url' => 'required'
    );
    public static $rules_image = array(
        'title' => 'required'
    );

    public function category(){
        return Category::find($this->category_id);
    }

}
Run Code Online (Sandbox Code Playgroud)

Mar*_*lln 10

使用,或时需要设置批量分配。看到这个答案createfillupdate

删除您的guarded属性并创建一个名为fillable数组的新属性,其中允许使用批量分配更新的字段。

protected $fillable = ['title', 'url'];
Run Code Online (Sandbox Code Playgroud)