我正在尝试打印"书籍"表中所有书籍的名称及其关联的类别。但它不显示任何内容或错误消息。
型号::书.php
class Book extends Eloquent{
protected $table ='books';
public function bookCat()
{
return $this->belongsTo('BookCategory');
}
}
型号::书籍分类.php
class BookCategory extends Eloquent{
protected $table ='book_categories';
}
控制器::路由.php
Route::get('/', function()
{
$books = Book::all();
return View::make('books')
->with('books', $books);
});
查看::书籍.刀片.php
@foreach ($books as $book)
<li>{{ $book->book_name }}</li>
- <small>{{ $book->bookCat }}</small>
@endforeach
表::书籍
(int)id, (string)book_name, (int)category_id
表::book_categories
(整数)id, (字符串)类别
将关系添加到 BookCategory。
class BookCategory extends Eloquent{
protected $table ='book_categories';
public function books() {
return $this->hasMany('Book');
}
}
您的本地密钥也与模型名称不匹配,因此您需要在关系中指定:
class Book extends Eloquent{
protected $table ='books';
public function bookCat()
{
return $this->belongsTo('BookCategory', 'category_id');
}
}
您可能还希望急切地加载控制器中的类别,因为您的查询是针对书籍的:
$books = Book::with('bookCat')->get();