我正在尝试使用foreach传递我在数据库中拥有的所有帖子,但是会弹出此错误。
这是我的观点:
<ul>
{{ <li>@foreach ($posts => $posts) }}
<div class="row section scrollspy" style="padding:10px; margin-top:10px;">
<div class="content-box col s12" style="padding:20px; margin-top:40px; background: #f2f2f2; border-radius:10px;">
<div class="i_title" style="text-align:center; margin: -57px 0 0 0;">
<a href="/profile" class="tooltip"><img class="responsive-img circle" src="images/profile_picture.jpg" style="width:60px; box-shadow: 0 6px 10px 0 rgba(0, 0, 0, 0.2);"><span class="tooltiptext">@Username{{ $user->username }}</span></a>
</div>
<p class="col s12"{{ $post->post }}</p>
</div>
</div>
{{ @endforeach</li> }}
</ul>
我的控制器:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
class UserController extends Controller
{
public function getUsers()
{
$user = DB::table('users')->get();
return view('layouts/welcomeView', ['users' => $user]);
}
public function getPosts()
{
$posts = DB::table('posts')->get();
return view('layouts/welcomeView', ['posts' => $posts]);
}
}
我的数据库有一些帖子,所以那不是问题。我认为麻烦是我没有很好地传递帖子中的变量。我该怎么办?
答案 0 :(得分:1)
这有几处错误。
首先,您要混合刀片指令。 var isDirectory: ObjCBool = false
let fileExists: Bool = FileManager.default.fileExists(atPath: pathOldLocalStorage, isDirectory: &isDirectory)
if fileExists {
print("isDirectory=\(isDirectory)")
}
用于回显某些内容。 {{ }}
和{{
内部的所有内容都被解释为PHP,并被传递给函数进行一些转义,并被回显。因此,当您执行}}
时,刀片编译器会尝试将{{ <li>@foreach ($posts => $posts) }}
视为PHP代码,这将导致语法错误。 <li>@foreach ($posts => $posts)
不属于@foreach
内部。
第二,我注意到您的{{ }}
内部有@foreach
。请注意,箭头两侧的变量是否相同?毫无疑问,这是一个拼写错误,但是它将导致循环的第一次迭代用第一个条目覆盖$posts => $posts
变量,并且循环将尝试继续迭代此新的单个值。可能是导致您看到的错误。
这可能更接近您要查找的内容:
$posts
答案 1 :(得分:0)
将您的视图更改为;
<ul>
<li>
@foreach ($posts => $post)
<div class="row section scrollspy" style="padding:10px; margin-top:10px;">
<div class="content-box col s12" style="padding:20px; margin-top:40px; background: #f2f2f2; border-radius:10px;">
<div class="i_title" style="text-align:center; margin: -57px 0 0 0;">
<a href="/profile" class="tooltip"><img class="responsive-img circle" src="images/profile_picture.jpg" style="width:60px; box-shadow: 0 6px 10px 0 rgba(0, 0, 0, 0.2);"><span class="tooltiptext">@Username{{ $user->username }}</span></a>
</div>
<p class="col s12"{{ $post->post }}</p>
</div>
</div>
@endforeach
</li>
</ul>
如果未在某处定义@Username
,则可能需要将其移动。
通常最好的方法是在数组中进行检查之前先检查一下其中的内容。
您可以这样做来实现;
@if(! $posts->isEmpty())
@foreach ($posts => $post)
....
@endforeach
@endif