我在一个网站工作,我必须在主页上显示多个类别信息。目前我的代码在控制器中如下所示
public function category1()
{
//here 1 is category id
$category1 = POST::find(1);
return view('books.index',compact('category1'));
}
public function category2()
{
//here 2 is category id
$category2 = POST::find(3);
return view('books.index',compact('category2'));
}
public function category3()
{
//here 3 is category id
$category3 = POST::find(3);
return view('books.index',compact('category3'));
}
并且在我看来我正在显示每个类别数据。但我认为这将使网站变慢,因为在家里我将显示大约15个类别。对于每个类别我正在创建方法。我希望它不是更好的方法。请建议我更好的方法,这样我就可以使用单一的方法。
提前谢谢
更新了问题 ::
我的路线喜欢
Route::get('/', 'HomeController@index');
和mysql表看起来像
id|post_title|post_content|cat_id
在我的主页我有15个盒子,里面有15个类别信息。现在我打电话给每个类别的每个请求。我的问题是我可以在单个请求中这样做,当我导航到我的家庭网址,如www.myurl.com
答案 0 :(得分:0)
不确定是否完全理解您的问题,但是:
public function category($categoryId)
{
$category = POST::find($categoryId);
return view('books.index',compact('category'));
}
如果需要,请在routes.php文件中:
Route::get('/category/{id}', 'MyController@category');
更新
如果您尝试在同一页面中显示多段代码,则应执行以下操作:
public function category()
{
$category1 = POST::find(1);
$category2 = POST::find(2);
$category3 = POST::find(3);
return view('books.index',compact('category1', 'category2', 'category3'));
}
更新2:
我会做什么:
public function getCategories(){
$categoryModel = new CategoryModel;
$categories = $categoryModel->getAllCategories();
return view('books.index', compact('categories');
}
模型可能是:
<?php namespace App;
use Illuminate\Database\Eloquent\Model;
use DB;
class CategoryModel extends Model {
function getAllCategories(){
$categories = DB::table('categories')
->get();
return $categories;
}
}