我正在测试 Redbean ORM。我喜欢它的工作方式,对我来说工作量少:) 我正在使用他们网站上的 redbean books 示例。我已经能够创建带有作者和标题的新书,并将它们毫无问题地显示到页面上。我添加了另一个维度来学习如何将页面链接到我的书籍。
我可以在书表中添加一个条目,也可以使用以下代码在页表中添加一个条目:
----------- dbmgmt.php ---------------------------------
function AddNewBook($FORMINFO){
$newBook = R::dispense('book');
$newBook->title = $FORMINFO['title'];
$newBook->author = $FORMINFO['author'];
$newBook->create_date = R::isoDateTime();
$newPage = R::dispense('page');
$newPage->pagetext = $FORMINFO['pagetext'];
$newBook->ownPage = $newPage;
$id = R::store($newBook);
return R::load('book', $id);
}
两个表都显示了正确的条目(新的 id 和填充的字段)。但是,我很难从页表中访问 pagetext 字段。这是我一直在使用的代码:
----------- dbmgmt.php ---------------------------------
function GetBooks($id){
if($id == ""){
return R::find('book');
}
else{
return R::find('book','id = ?', array($id));
}
}
----------- GetBooks.php ---------------------------------
$id = "";
if(isset($_GET['id'])){
$id = $_GET['id'];
}
$books = GetBooks($id);
$booklist = "";
foreach($books as $book){
$pagetext = "";
foreach($book->ownPage as $page){
$pagetext .= $page->pagetext; //Errors with "Notice: Trying to get property of non-object"
}
$booklist .= "<tr id='$book->id'><td><a class='linkEdit' href='edit.php?id=$book->id'><img src='http://cdn1.iconfinder.com/data/icons/ledicons/page_white_edit.png' /></a> <span class='book-title'>$book->title</span></td><td><span class='book-author'>$book->author</span></td><td><span class='page-text'>$pagetext</span></td></tr>";
}
echo $booklist;
------------------------------------------------------------
当我 print_r($book->ownPage) 时,我什至看不到通过 phpmyadmin 在页表中可以清楚看到的页条目。我已经尝试了许多不同的方法来通过上面的脚本访问 pagetext 字段,但无法使用它。
任何见解都将受到欢迎。否则我将不得不尝试不同的,尽管更大更麻烦的 ORM。
提前致谢。