我正在建立一个论坛,并试图实现一个类别页面。该页面目前正在运行,它是动态的,因此它列出了存储在数据库中的所有类别。但是,我希望能够单击一个类别并转到模板页面。我想从此模板页面传递一个docker run -it \
--env="DISPLAY" \
--env="QT_X11_NO_MITSHM=1" \
--volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" \
osrf/ros:indigo-desktop-full \
rqt
export containerId=$(docker ps -l -q)
(在数据库中定义为主键)。然后将显示所有具有匹配类别ID的帖子。我无法将此category ID
传递到我的类别页面模板。
任何帮助将不胜感激!
(类别在列表中的显示方式:)
category ID
谢谢!
答案 0 :(得分:2)
您可以创建一个网络路由,该路由将处理类别调用并返回具有该类别及其帖子的视图。
首先,您要创建一条像这样的路线:
Route::get('category/{category}', 'CategoriesController@show')->name('category.show');
然后,您可以在控制器内部访问此Category
并加载帖子并按以下方式返回它们:
public function show(Request $request, Category $category) {
return view('category.show', compact('category'));
}
然后在您的视图中,您将看到类似这样的内容,您可以在这些帖子中循环显示
@foreach($category->posts as $post)
// do something
@endforeach
要调用路线,您只需创建以下链接即可:
<a href="{{ route('category.show', ['category' => $id]) }}">Show</a>
如我所见,您的基本名称空间是ULMG
,因此,正确使用Category
类的方法是ULMG\Category
答案 1 :(得分:2)
首先在web.php中定义一条路由:
web.php:
Route::get('category/{category}','YouController@YourCatFunction')->name('categories.list');
在您的控制器中:
public function YourCatFunction(Category $category)
{
// here you can return view for post with that category and then display them
return $category;
}
然后在您看来:
@foreach($categories as $row)
<div id="newscontainer" class="container">
<a href="{{ route('categories.list',$row->id)}}"><span id='categoryname'>{{ $row->categoryname }}<br></span></a>
<span id="categorydescription">{{ $row->categorydescription }}</span>
</div>
<br>
@endforeach
答案 2 :(得分:1)
您也可以尝试这个。
路线web.php
Route::get('category/{categoryid}', ['as'=>'category.show','uses'=>'CategoriesController@show');
控制器CategoriesController.php
public function show($categoryid){
// some of your code.
$categoryid = DB::table('category')->select('categoryId');
return view('category.show', compact('categoryId'));
// don't forget if you have some variables and you want to view it at blade just put it inside the compact
}
查看刀片category.show.blade.php
@foreach($categories as $row)
<div id="newscontainer" class="container">
<a href="{{route('category.show',['categoryid'=>$row->categoryid])}}"><span id='categoryname'>{{ $row->categoryname }}<br></span></a>
<span id="categorydescription">{{ $row->categorydescription }}</span>
</div>
@endforeach
答案 3 :(得分:0)
对于其他遇到相同问题的人: (我有一个尤里卡的时刻...)
我的forums.blade.php
文件(用户在其中选择要查看的类别:
在这里,它调用类别路由(将在其中显示帖子),然后在一个URL中设置类别ID。在浏览器中将如下所示:www.example.test / category /(ID)(因此,当我在数据库中查询该类别下的帖子时,它将提取它们)。
<a href="/category/{{ $categoryid }}"> <span id='categoryname'><?= $row->categoryname ?><br></span></a>
我的web.php
文件:
我基本上是从用户单击链接时通过的URL中获取ID的。
Route::get('/category/{id}', 'CategoriesController@getid');
我的CategoriesController.php
文件:
这里我定义了一个函数,因此在web.php
中它知道转到属性为getid
的函数。找到正确的功能后,便将$catid
设置为与$id
相同的值。然后,它会在categorytemplate
函数中返回$catid
变量,返回到compact
视图(这是首先需要ID才能显示帖子的模板)。
public function getid($id){
$catid = $id;
return view('categorytemplate', compact('catid'));
}
我希望我的解释足够清楚可以理解。我希望这可以在将来帮助其他人解决这个问题!
再次感谢其他提出建议的人。