首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >phpactiverecord无法创建对象-undefined属性

phpactiverecord无法创建对象-undefined属性
EN

Stack Overflow用户
提问于 2017-04-08 23:13:44
回答 1查看 263关注 0票数 1

我正在测试PHP Active Record,但我面临一些问题。

设置AR

代码语言:javascript
复制
    ActiveRecord\Config::initialize(function($cfg)
    {
        $cfg->set_model_directory( __DIR__ . '/models');
        $cfg->set_connections(array(
            'development' => 'sqlite://:memory:' ));
    });

models/Author.php

代码语言:javascript
复制
class Author extends ActiveRecord\Model
{
    static $table_name = 'author';
}

models/Book.php

代码语言:javascript
复制
<?php

class Book extends ActiveRecord\Model
{
    static $table_name = 'book';

        static $belongs_to = array(
            array('author')
        );

}

创建新作者

代码语言:javascript
复制
$author = new Author();
$author->first_name = 'John';
$author->save();

创建新帐簿

代码语言:javascript
复制
$book = new Book();
$book->title = 'Dead men tell no tales.';
$book->save();

创建author表

代码语言:javascript
复制
CREATE TABLE [author]
        (
            [id] INTEGER  NOT NULL PRIMARY KEY,
            [first_name] VARCHAR(128)  NOT NULL
        )

创建book表

代码语言:javascript
复制
CREATE TABLE [book]
        (
            [id] INTEGER  NOT NULL PRIMARY KEY,
            [title] VARCHAR(255)  NOT NULL,
            [author_id] INTEGER,
            FOREIGN KEY (author_id) REFERENCES author(id)
        )

创建author对象似乎很好,但创建一本书会引发异常

代码语言:javascript
复制
 Uncaught ActiveRecord\UndefinedPropertyException: Undefined property: Book->author_id

使用标准PDO查询数据库似乎运行良好...所以我想知道我是不是在Php活动记录中遗漏了什么

EN

回答 1

Stack Overflow用户

发布于 2017-04-10 18:29:31

author_id是一个非空的外键,因此必须始终在插入时指定:

代码语言:javascript
复制
$book = new Book();
$book->title = 'Dead men tell no tales.';
$book->author_id = 1; // replace this value with an appropriate one.
$book->save();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43295808

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档