Laravel (HasMany) 不检索值
Laravel (HasMany) doesnt rectrieve values
我有以下型号:
namespace App;
use Illuminate\Database\Eloquent\Model;
class forum_category extends Model
{
//
protected $table = 'forum_category';
public function posts()
{
$this->hasMany('App\forum_post');
}
}
和
namespace App;
use Illuminate\Database\Eloquent\Model;
class forum_post extends Model
{
//
protected $table = 'forum_post';
public function category()
{
$this->belongsTo('App\forum_category');
}
}
在我的控制器中,我尝试获取所有类别及其帖子:
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
use App\forum_category as forum_category;
class ForumController extends Controller
{
public function __construct()
{
}
public function index ()
{
$categories = forum_category::all();
return view('forum', ['categories' => $categories]);
}
public function createPost()
{
}
public function createReply()
{
}
}
但是它似乎只返回我的类别。
谁能告诉我我做错了什么?
查询应如下所示:
$categories = forum_category::with('posts')->get();
https://laravel.com/docs/5.5/eloquent-relationships#eager-loading
如果 forum_post
table 中有 category_id
,这将加载包含相关帖子的类别。
然后只需遍历集合即可获取帖子:
@foreach ($categories as $category)
@foreach ($category->posts as $post)
{{ $post->title }}
@endforeach
@endforeach
另外,关系应该是:
public function category()
{
return $this->belongsTo('App\forum_category');
}
我有以下型号:
namespace App;
use Illuminate\Database\Eloquent\Model;
class forum_category extends Model
{
//
protected $table = 'forum_category';
public function posts()
{
$this->hasMany('App\forum_post');
}
}
和
namespace App;
use Illuminate\Database\Eloquent\Model;
class forum_post extends Model
{
//
protected $table = 'forum_post';
public function category()
{
$this->belongsTo('App\forum_category');
}
}
在我的控制器中,我尝试获取所有类别及其帖子:
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
use App\forum_category as forum_category;
class ForumController extends Controller
{
public function __construct()
{
}
public function index ()
{
$categories = forum_category::all();
return view('forum', ['categories' => $categories]);
}
public function createPost()
{
}
public function createReply()
{
}
}
但是它似乎只返回我的类别。
谁能告诉我我做错了什么?
查询应如下所示:
$categories = forum_category::with('posts')->get();
https://laravel.com/docs/5.5/eloquent-relationships#eager-loading
如果 forum_post
table 中有 category_id
,这将加载包含相关帖子的类别。
然后只需遍历集合即可获取帖子:
@foreach ($categories as $category)
@foreach ($category->posts as $post)
{{ $post->title }}
@endforeach
@endforeach
另外,关系应该是:
public function category()
{
return $this->belongsTo('App\forum_category');
}