php - 如何解决 AdonisJs、XAMPP MySQL 错误

标签 php mysql xampp migration adonis.js

我尝试使用 AdonisJs 将值插入到我的 XAMPP MySQL 服务器中,但出现以下错误:

插入帖子(正文created_at标题updated_at)值(DEFAULT,'2018-06-28 15:06:02','post 4','这是post 4','2018-06-28 15:06:02') - ER_WRONG_VALUE_COUNT_ON_ROW:列计数不第 1 行的匹配值计数

此错误告诉我的是,我为包含 4 个值的表提供了 5 个值。事实上,表“posts”确实包含 5 个值,它们是:

ID、标题、正文、创建时间、更新时间

我可以使用 phpMyAdmin 手动将值输入到 id、title、body 中,表格将更新,我的应用程序将反射(reflect)更改。

我可以跟踪的唯一问题似乎是 PostController.js 文件中的increments() 方法。是不是它没有正确地完成它的工作?

我如何继续弄清楚这里发生了什么?

迁移文件 posts_schema.js :

'use strict'

const Schema = use('Schema')

class PostsSchema extends Schema {
  up () {
    this.create('posts', (table) => {
      table.increments()
      table.string('title')
      table.string('body')
      table.timestamps()
    })
  }

  down () {
    this.drop('posts')
  }
}

module.exports = PostsSchema

Controller PostsController.js:

'use strict'

// Bring in model

const Post = use('App/Models/Post')

class PostController {
    async index({ view }){
      //  const posts = [
        //    {title:'Post One', body:'This is post one'},
          //  {title:'Post Two', body:'This is post one'},
           // {title:'Post Three', body:'This is post one'}
       // ]
        const posts = await Post.all();

        return view.render('posts.index', { 
            title: 'Latest Posts',
            posts: posts.toJSON()
        })
    }

    async details({ params, view}) {
        const post = await Post.find(params.id)

        return view.render('posts.details', {
            post: post
        })

    }

    async add({ view }) {
        return view.render('posts.add')
    }

    async store({ request, response, session }) {
        const post = new Post();

        post.title = request.input('title')
        post.body = request.input('body')

        await post.save()

        session.flash({ notification: 'Posted Success'})

        return response.redirect('/posts')
    }
}

module.exports = PostController

View 添加边缘:

@layout('main')

@section('content')
    <a href="/posts">Go Back</a>
    <hr>
    <h1>Add Post</h1>
    <form action="/posts" method="POST">
        {{ csrfField() }} 
        <div class="form-group">
            <label>Title</label>
            <input type="text" name="title" class="form-control" placeholder="Title">
        </div>
        <div class="form-group">
            <label>Body</label>
            <textarea name="title" class="form-control" placeholder="Body"></textarea>
        </div>
        <button class="btn btn-primary" type="submit">Submit</button>
    </form>

@endsection

路由文件routes.js:

'use strict'

const Route = use('Route')



Route.on('/').render('home')

Route.get('/posts', 'PostController.index')

Route.get('/posts/add', 'PostController.add')

Route.get('/posts/:id', 'PostController.details')

Route.post('/posts', 'PostController.store')

我在配置 XAMPP 方面做得很少。我对 config.inc.php 的更改很简单:

$cfg['Servers'][$i]['controluser'] = 'root';
$cfg['Servers'][$i]['controlpass'] = '123456';
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '12345';
/* Server parameters */
$cfg['Servers'][$i]['host'] = '127.0.0.1';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = true;

一直在研究以下代码和教程: AdonisJs 入门 https://www.youtube.com/watch?v=SaXhwbuMTu4

最佳答案

<textarea name="title" class="form-control" placeholder="Body"></textarea>

看起来 name 属性应该是 body 而不是 title

关于php - 如何解决 AdonisJs、XAMPP MySQL 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51078657/

相关文章:

php - Laravel 4 中 Request::route() 的等价物是什么?

php - 从字符串中的链接中删除基本 URL

php - 如何在 PHP 中以随机顺序从现有 mysql 数据库创建两个新列表,其中相同位置的元素不相等?

python - 如何向 Python 的 getpass() 提供 Bash 变量?

mysql - 在插入语法问题或什么中选择子查询中的变量?

php - 如何在非 Wordpress 网站上获取永久链接

php - 如何在 Linux 上的 XAMPP 中启用 PostgreSQL

java - PHP Socket Java 消息交换

php - Mysql 查询在 if 子句中不接受?

php - 无法在本地运行 Pydio