Laravel 5 制作CMS?

Laravel 5 CMS making?

我正在尝试使用 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 行中的那个类别的论坛。谢谢。

好的,这里有一个详尽的答案。

在 Laravel 中,您可以使用 Eloquent 模型作为在应用程序中创建实体的一种方式。在这种情况下,我认为 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

这应该可以解决您的问题,只需在类别中显示该类别的论坛。