Laravel 5: form data won't submit to the database - no e


Laravel 5: form data won't submit to the database - no error shown

我试图在一个名为moderators的数据透视表中将用户分配为论坛类别(subreddits)的版主

这些是表格

版主:id, user_id, subreddit_id, created_at, updated_at

users: id: name: email…

subreddit: id, user_id, name…

我已经创建了视图,控制器和模型,但数据不会提交给数据库,我没有得到错误。

注意:我需要访问这条路由subreddit/{id}/moderators/create,以便进入视图并开始提交。

EDIT:我只是清空了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这就是为什么有div和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'
   ];
}

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

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