如何在 Laravel 中查询 Views/Blade 文件中的表
How to query tables in Views/Blade file in Laravel
我有一组 array
,其中存储 blog post
的 id
,我想显示 blog
post id
出现在 array
中,我无法通过 controller
传递它,因为我将大量数据传递给视图和博客 post 视图是动态调用的,在我的控制器中,我得到所有 post 并通过视图:
$blogpost = Post::all();
'blogpost' => $blogpost //data passed in return view
现在我有一个 foreach loop
并且假设我想获取我正在尝试做的特定 post 的图像:
@foreach($contents->blogid as $blogid)
<?php
$blog = $blogpost->findOrFail($blogid);
?>
<div class="col-sm-4">
<article class="post post-masonry">
<div class="post-image">
<div class="image">
<img src="{{ $blog->featured_image }}" alt="">
<div class="image-extras">
<a href="#" class="post-gallery"></a>
</div>
</div>
</div>
</article>
</div>
@endforeach
我收到一个错误
Method findOrFail does not exist
此外,如果我将 findOrFail
更改为:
$blog = $blogpost->find($blogid);
我遇到一个错误:
Trying to get property of non-object
帮帮我。
谢谢。
您不应该混合原生 PHP 和 blade 模板。
相反,让 blade 为您完成工作! :)
@foreach($contents->blogid as $blogid)
..
<img src="{!! \App\Post::findOrFail($blogid)->featured_image; !!}" alt="">
..
@endforeach
您甚至不需要传递 'blogpost' 变量,只要您有通往 Post class 的正确路线即可。我用的是App\Post,但对你来说可能不一样。
findOrFail
或只有 find
不是原生函数 PHP。您可以尝试静态调用,但我认为您的问题很容易通过 Laravel 关系解决,您的代码会更干净。
https://laravel.com/docs/5.1/eloquent-relationships
抱歉,第一步是英语。
Post::all()
将 return 一个 Post objects 的数组。因此,只需将该数组传递给您的 blade 模板并循环遍历该数组的每个 Post
。您还应该将变量名称更改为 blogposts.
PHP
$blogposts = Post::all();
return view('blog.index', ['blogposts' => $blogposts]);
Blade
@foreach ($blogposts as $blogpost)
<p>{{ $blogpost->id }}</p>
<p>{{ $blogpost->featured_image }}</p>
@endforeach
我有一组 array
,其中存储 blog post
的 id
,我想显示 blog
post id
出现在 array
中,我无法通过 controller
传递它,因为我将大量数据传递给视图和博客 post 视图是动态调用的,在我的控制器中,我得到所有 post 并通过视图:
$blogpost = Post::all();
'blogpost' => $blogpost //data passed in return view
现在我有一个 foreach loop
并且假设我想获取我正在尝试做的特定 post 的图像:
@foreach($contents->blogid as $blogid)
<?php
$blog = $blogpost->findOrFail($blogid);
?>
<div class="col-sm-4">
<article class="post post-masonry">
<div class="post-image">
<div class="image">
<img src="{{ $blog->featured_image }}" alt="">
<div class="image-extras">
<a href="#" class="post-gallery"></a>
</div>
</div>
</div>
</article>
</div>
@endforeach
我收到一个错误
Method findOrFail does not exist
此外,如果我将 findOrFail
更改为:
$blog = $blogpost->find($blogid);
我遇到一个错误:
Trying to get property of non-object
帮帮我。
谢谢。
您不应该混合原生 PHP 和 blade 模板。
相反,让 blade 为您完成工作! :)
@foreach($contents->blogid as $blogid)
..
<img src="{!! \App\Post::findOrFail($blogid)->featured_image; !!}" alt="">
..
@endforeach
您甚至不需要传递 'blogpost' 变量,只要您有通往 Post class 的正确路线即可。我用的是App\Post,但对你来说可能不一样。
findOrFail
或只有 find
不是原生函数 PHP。您可以尝试静态调用,但我认为您的问题很容易通过 Laravel 关系解决,您的代码会更干净。
https://laravel.com/docs/5.1/eloquent-relationships
抱歉,第一步是英语。
Post::all()
将 return 一个 Post objects 的数组。因此,只需将该数组传递给您的 blade 模板并循环遍历该数组的每个 Post
。您还应该将变量名称更改为 blogposts.
PHP
$blogposts = Post::all();
return view('blog.index', ['blogposts' => $blogposts]);
Blade
@foreach ($blogposts as $blogpost)
<p>{{ $blogpost->id }}</p>
<p>{{ $blogpost->featured_image }}</p>
@endforeach