Laravel存储库关系

时间:2014-08-03 21:54:31

标签: php laravel eloquent repository

我在用户和帖子(用户模型和帖子模型)之间有一个简单的关系,我正在使用存储库。

<?php namespace St0iK\Storage\Post;

use Post;

class EloquentPostRepository implements PostRepository {

  protected $errors;

  public function all()
  {
    return Post::all();
  }

  public function find($id)
  {
    return Post::find($id);
  }

  public function create($input)
  { 
      return Post::create($input);
  }


}

在我的控制器中我有:

  public function store()
  {
    // Get input from the form
    $input = Input::all();
    $input['user_id'] =   (int)Auth::user()->id;
    $p =  $this->post->create( Input::all() );

    if( $p->errors()->isEmpty() )
    {
      return Redirect::route('home')->with('flash', 'The new post has been created');
    }

    return Redirect::route('upload.create')->withInput()->withErrors($p->errors());
  }

但是'post'没有插入数据库中。我得到验证错误(我正在使用Ardent)我的所有字段都丢失了! 但如果我在我的控制器中尝试类似的东西:

$user = User::find( (int)Auth::user()->id);
$user->posts()->save($post); 

它运作得很好。

如何将此功能实现到我的Post Repository中,以便我可以插入一个带有相关用户的新帖子并传递user_id?

0 个答案:

没有答案