laravel 4 - 在数组中插入多个字段

时间:2014-07-17 13:06:00

标签: laravel laravel-4

laravel中的以下函数存储我的表单输入。我无法存储除作者ID和标题之外的任何内容。它只是不会存储关键字。

以下是我的Postcontroller.php中的函数

public function store()
    {
        $input = Input::all();

        $rules = array(
            'title' => 'required',
            'text'  => 'required',
        );

        $validation = Validator::make($input, $rules);

        if ($validation->fails()) {
            return Redirect::back()->withErrors($validation)->withInput();
        } else {
            // create new Post instance
            $post = Post::create(array(
                'title'  => $input['title'],
                'keywords'  => $input['keywords'],
            ));

            // create Text instance w/ text body
            $text = Text::create(array('text' => $input['text']));

            // save new Text and associate w/ new post
            $post->text()->save($text);

            if (isset($input['tags'])) {
                foreach ($input['tags'] as $tagId) {
                    $tag = Tag::find($tagId);
                    $post->tags()->save($tag);
                }
            }

            // associate the post with user
            $post->author()->associate(Auth::user())->save();

            return Redirect::to('question/'.$post->id);
        }
    }

Post.php(模特)

<?php

class Post extends Eloquent {

    /**
     * The database table used by the model.
     *
     * @var string
     */
    protected $table = 'posts';

    /**
     * Whitelisted model properties for mass assignment.
     *
     * @var array
     */
    protected $fillable = array('title');

    /**
     * Defines a one-to-one relationship.
     *
     * @see http://laravel.com/docs/eloquent#one-to-one
     */
    public function text()
    {
        return $this->hasOne('Text');
    }

    /**
     * Defines an inverse one-to-many relationship.
     *
     * @see http://laravel.com/docs/eloquent#one-to-many
     */
    public function author()
    {
        return $this->belongsTo('User', 'author_id');
    }

    /**
     * Defines a many-to-many relationship.
     *
     * @see http://laravel.com/docs/eloquent#many-to-many
     */
    public function tags()
    {
        return $this->belongsToMany('Tag');
    }

    /**
     * Defines an inverse one-to-many relationship.
     *
     * @see http://laravel.com/docs/eloquent#one-to-many
     */
    public function category()
    {
        return $this->belongsTo('Category');
    }

    /**
     * Defines a polymorphic one-to-one relationship.
     *
     * @see http://laravel.com/docs/eloquent#polymorphic-relations
     */
    public function image()
    {
        return $this->morphOne('Image', 'imageable');
    }

    /**
     * Defines a one-to-many relationship.
     *
     * @see http://laravel.com/docs/eloquent#one-to-many
     */
    public function comments()
    {
        return $this->hasMany('Comment');
    }

}

1 个答案:

答案 0 :(得分:1)

您正在使用模型设置停止keywords的批量分配。

更改

protected $fillable = array('title');

protected $fillable = array('title', 'keywords');