php - 拉维尔 5 : form data won't submit to the database - no error shown

标签 php mysql laravel laravel-5 eloquent

我正在尝试将用户分配为名为 moderators 的数据透视表中的论坛类别(subreddits)

这是表格

moderators: id, user_id, subreddit_id, created_at, updated_at

users: id: name: email...

subreddits: id, user_id, name...

我已经创建了 View 、 Controller 和模型,但是数据不会提交到数据库并且我没有收到任何错误。

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

编辑: 我刚刚清空了 store() 函数并将其替换为 return 'done'; 但这似乎并没有生效。单击提交按钮后,页面会重新加载,但什么也没有发生。那么也许问题出在 View 中?

路由.php

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

路由服务提供者

$router->model('articles', 'App\Article');
$router->model('subreddit', 'App\Subreddit');
$router->model('posts', 'App\Post');
$router->model('moderators', 'App\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();
    }

这是 View 中的表单,我使用的是 Typeahead.js,这就是为什么有 id="remote"

的 div
{!! 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() !!}

版主请求

public function authorize()
{
   return true;
}

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

最佳答案

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

问题是您的 ModeratorRequest 正在返回验证错误,您没有在 View 中显示该错误。

关于php - 拉维尔 5 : form data won't submit to the database - no error shown,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32970542/

相关文章:

php - Mac OSX Apache 写入权限

php - 如何为用 PHP 生成的图像设置默认名称 'save image as'?

Mysql - 获取错误值

MySQL 错误 1054 : Unknown Column 'hotels.postal_code' in 'on clause'

php - Cron 作业不起作用,Laravel 和 cPanel

php - MySQL SUM 直到每年的特定日期

php - 过期的链接

php - Laravel 5.0.33 加载错误的 .env 文件

php - 使用 PHP 和 MySQL 表结构向另一个用户的个人资料中写入帖子

php - 在测试我的算法的所有可能性时减少测试时间的策略