我正在尝试使用Laravel 5构建一个简单的CMS,我已经停止了:
类别标题可以,但在同一个(共享论坛)内?为什么?我的代码:
@extends('layouts.main')
@section('content')
@foreach($categories as $category)
<div class="panel panel-default">
<div class="panel-heading">{{ $category->title }}</div>
<div class="panel-body">
<table class="table">
<tbody>
@foreach($forums as $forum)
<tr>
<th scope="row">{{ $forum->id }}</th>
<td><a href="{{ generateForumURL($forum->seo_name, $forum->id) }}">{{ $forum->name }}</a></td>
<td>{{ $forum->topics }}</td>
<td>{{ $forum->posts }}</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
@endforeach
@stop
在路线中:
Route::get('', function()
{
$forums = DB::table('forums')
->select()
->get();
$categories = DB::table('categories')
->select()
->get();
return View::make('home', compact('forums', 'categories'));
});
在PhpMyAdmin:
我知道我没有做某事,但我不知道是什么,我是Laravel的新手。 P.S我英语不好,抱歉我的语言不好:)非常感谢你提前;)
很快:我不想在in_category
行中写出该类别的论坛。感谢。
答案 0 :(得分:3)
好的,这里有一个精心的答案。
在Laravel中,您可以使用Eloquent模型作为在应用程序中创建实体的方法。在这种情况下,我认为雄辩的模型将是最好的事情。
首先,按照以下app/Category.php
创建一个新模型:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Category extends Model {
protected $table = "categories";
public $timestamps = false;
public function forums() {
return $this->hasMany('App\Forum', 'in_category');
}
}
然后创建另一个模型,如下所示app/Forum.php
:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Forum extends Model {
protected $table = "forums";
public $timestamps = false;
public function category() {
return $this->belongsTo('App\Category');
}
}
完成此操作后,您现在可以按如下方式修改路线:
<?php
use App\Category;
Route::get('', function()
{
$categories = Category::all();
return View::make('home', compact('categories'));
});
以及您的观点如下:
@extends('layouts.main')
@section('content')
@foreach($categories as $category)
<div class="panel panel-default">
<div class="panel-heading">{{ $category->title }}</div>
<div class="panel-body">
<table class="table">
<tbody>
@foreach($category->forums as $forum)
<tr>
<th scope="row">{{ $forum->id }}</th>
<td><a href="{{ generateForumURL($forum->seo_name, $forum->id) }}">{{ $forum->name }}</a></td>
<td>{{ $forum->topics }}</td>
<td>{{ $forum->posts }}</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
@endforeach
@stop
这应该只显示该类别中的类别的论坛来解决您的问题。