2015-10-06 94 views
2

我试图将用户分配作为主持人来透视表论坛类别(subreddits)呼吁moderatorsLaravel 5:表单数据将不会向数据库提交 - 显示任何错误

下面是表

主持人:ID,USER_ID,subreddit_id,created_at,的updated_at

用户:ID:名字:电子邮件...

subreddits:ID,USER_ID,名称...

我已经创建了视图,控制器和模型,但数据不会提交到数据库,也不会出错。

注:我需要访问此路线subreddit/{id}/moderators/create才能进入视图并开始提交。

编辑:我刚刚清空了store()功能,并与return 'done';取代它,但似乎并没有生效。点击提交按钮后,页面只是重新加载,没有任何反应。所以也许问题在于这个观点?

routes.php文件

Route::resource('subreddit', 'SubredditController'); 
Route::resource('subreddit.moderators', 'ModeratorsController'); 

RouteServiceProvider

$router->model('articles', 'App\Article'); 
$router->model('subreddit', 'App\Subreddit'); 
$router->model('posts', 'App\Post'); 
$router->model('moderators', 'App\Moderator'); 

Moderator型号

protected $table = 'moderators'; 

    protected $fillable = ['user_id', 'subreddit_id']; 

    public function subreddit() { 
     return $this->belongsTo('App\Subreddit'); 
    } 

    public function user() { 
     return $this->belongsTo('App\User'); 
} 

ModeratorsController - 在这里我想手动提交USER_ID和subreddit_it只是为了测试它是加工。

public function create(Moderator $moderator, Subreddit $subreddit, User $user) 
    { 
     $subreddit = Subreddit::with('user')->findOrFail($subreddit->id); 

     return view('user/moderators')->with(compact('subreddit')); 
    } 

public function store(Requests\ModeratorRequest $request, Subreddit $subreddit) 
    { 
     $moderator = new Moderator; 
     $moderator->user_id = 2; 
     $moderator->subreddit_id = 17; 
     $moderator->save(); 
    } 

这是视图里面的形式,我使用Typeahead.js这就是为什么有格与id="remote"

{!! Form::open(['url' => 'subreddit/' . $subreddit->id . '/moderators', 'method' => 'POST']) !!} 

    <p> 
     <div id="remote"> 
      <input class="form-control typeahead" type="text" placeholder="Choose a Username" name="user_name"> 
      <input type="hidden" class="user_id" value="" name="user_id"> 
     </div> 
    </p> 

    <p> 
     {!! Form::submit('Submit Post', ['id' => 'submit', 'class' => 'btn btn-primary']) !!} 
    </p> 

{!! Form::close() !!} 

ModeratorRequest

public function authorize() 
{ 
    return true; 
} 

public function rules() 
{ 
    return [ 
     'user_id' => 'required', 
     'subreddit_id' => 'required' 
    ]; 
} 
+1

你好。 ;)请发布'ModeratorRequest'。我认为返回的验证错误不会被您的视图显示出来,因此请求将无错地返回。 – Mithredate

+0

你好再次:)我已经更新了我原来的帖子,并添加了ModeratorRequest。 – Halnex

+0

添加了'Request $ request'而不是'ModeratorRequest',它工作。我的ModeratorRequest有什么问题? – Halnex

回答

2

根据documentations尝试foreach ($messages->all() as $message)

问题是您的ModeratorRequest正在返回验证错误,您不会在视图上显示错误。