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
这应该可以解决您的问题,只需在类别中显示该类别的论坛。
我正在尝试使用 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
这应该可以解决您的问题,只需在类别中显示该类别的论坛。