php - 定义文章 ID
问题描述
我有一个单独的文章的页面,我们通过 slug 去
php.blade
@extends('layouts.app')
@section('content')
<div class="article-wrapper">
<div class="container">
<h1>{{ $article->title }}</h1>
<h3>{{ $article->subtitle }}</h3>
<img src="{{ $article->main_image }}" alt="">
<h3>{{ date('d F Y', strtotime($article->published_at)) }}</h3>
<h3>{{ $article->views }} Views</h3>
@foreach($article_blocks as $article_block)
<div class="text-image">
<h2>{{ $article_block->title_1 }}</h2>
<h3>{{ $article_block->text_1 }}</h3>
<img src="{{ $article_block->main_image }}" alt="">
</div>
@endforeach
@endsection
控制器
public function index(Request $request, $slug)
{
$article = Article::where('slug', $slug)->first();
$article_blocks = ArticleBlock::where('article_id', 1)->get();
return view('article', compact('article', 'article_blocks'));
}
接下来,我有另一个块模型,每篇文章都有自己的块,正如您在我的控制器中看到的那样,我手动编写文章 ID 以获取特定于它的块。
如何让它自己决定我们在哪篇文章上,并只为它显示块?
解决方案
尝试 :
public function index(Request $request, $slug)
{
$article = Article::firstWhere('slug', $slug);
$article_blocks = ArticleBlock::where('article_id', $article->id)->get();
return view('article', compact('article', 'article_blocks'));
}
如果您在模型之间创建了关系,则可以按如下方式使用它:
public function index(Request $request, $slug)
{
$article = Article::with('articleBlock')->where('slug', $slug)->get();
return view('article', compact('article'));
}
推荐阅读
- youtube - Youtube 直播嵌入代码显示“直播离线”
- go - Golang Cronjob vs time.Ticker 用例
- node.js - Cloud9 数据库到 mLab 数据库“失败:连接到数据库服务器时出错:没有可访问的服务器”
- python - 我的 if 语句在 python 中不起作用
- javascript - 通过单选按钮的值控制 textarea 的元素属性
- python - Python Pandas - 从 extractall 返回的集合中选择最佳匹配
- python - 显示类型错误:+= 不支持的操作数类型:'int' 和 'NoneType'
- postman - 邮递员从数组中获取值并在环境变量上动态设置它
- spring-boot - Spring Boot 2.0.2 + Flowable 6.3.1 流程部署
- haskell - 如何在 Haskell 中使用列表推导?