2012-06-27 68 views
0

我正在測試Redbean ORM。我喜歡它是如何工作的,對我來說工作較少:)我正在使用他們網站上的redbean書籍示例。我已經能夠創作出帶有作者和標題的新書,並且毫無問題地將它們顯示在頁面上。我增加了另一個維度來學習如何將頁面鏈接到我的書籍。(Redbean)無法訪問鏈接的表值

我可以添加一個條目進書表,並使用下面的代碼添加進入頁表:

----------- 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和人口領域)。但是,我很難從頁表訪問頁面文本字段。這是我一直在使用該代碼:

----------- 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($書本 - > ownPage),我甚至不看網頁條目我可以在頁表通過phpMyAdmin的很清楚地看到。我已經嘗試了許多不同的方法來通過上面的腳本訪問pagetext字段,但無法使用它。

任何有識之士將是最受歡迎的。否則,我將不得不嘗試一種不同的,儘管更大,更麻煩的ORM。

在此先感謝。

回答

0

我不是100%肯定,因爲我還沒有遇到這個問題還沒有自己,但我幾乎可以肯定,$book->ownPage需要是一個數組:

$newPage = R::dispense('page'); 
$newPage->pagetext = $FORMINFO['pagetext']; 
$newBook->ownPage[] = $newPage; 

$id = R::store($newBook); 
+0

輝煌,謝謝!我添加了括號,它工作。表格參考是顛倒過來的,所以我必須稍微玩一下,看看它是如何工作的。謝謝您的幫助。 – mjparker78