视图中未定义的变量 Laravel 5.6
Undefined Variable in View Laravel 5.6
我尝试解决这个问题并阅读了很多 post 但没有任何帮助,试着找出我的问题,因为我是 laravel!
的新手
这是我位于 view/posts
的 Index.blade.view
<!DOCTYPE html>
<html>
<head>
<title>Post</title>
</head>
<body>
<ul>
<?php
foreach ($posts as $post) {
echo "<li><a href = 'post/$post->$id'>".$post->$title."</a></li>";
}
?>
</ul>
</body>
</html>
PostController
:
<?php
namespace App\Http\Controllers;
use App\Post;
use Illuminate\Http\Request;
class PostController extends Controller
{
public function index(){
$posts = Post::all();
return view('posts.index',compact($posts));
}
public function showPost($id){
$post = Post::find($id);
return view('posts.post',compact($post));
}
}
我读了很多与此相关的 post 但没有任何帮助,我做错了什么?
这是我面临的问题:Undefined variable: posts (View: C:\xampp\htdocs\firstApplication\resources\views\posts\index.blade.php)
将视图更改为
</head>
<body>
<ul>
<?php
foreach ($posts as $post) {
echo "<li><a href = 'post/$post->id'>".$post->title."</a></li>";
}
?>
</ul>
</body>
</html>
将 $post->$id
更改为 $post->id
,将 $post->$title
更改为 $post->title
还有 compact($posts)
到 compact('posts')
和 compact($post)
到 compact('post')
假设您有另一个变量保存数据,那么您的索引方法应该如下所示:
访问 $post 的内容作为 $post->id
而不是 $post->$id
public function index(){
$posts = Post::all();
$someData = []; // extra variable
return view('posts.index',compact('posts','someData'));
}
要进行的另一项更改是在视图文件中:
附带说明:您不必使用传统的 PHP 标签和 foreach,而是可以使用 Laravel 的干净优雅的方法,如下所示:
替换您的代码块:
<?php
foreach ($posts as $post) {
echo "<li><a href = 'post/$post->$id'>".$post->$title."</a></li>";
}
?>
更新代码:
@foreach($posts as $post)
<li><a href = "{{ url('post/'. $post->id) }}" </a></li>
@endforeach
我尝试解决这个问题并阅读了很多 post 但没有任何帮助,试着找出我的问题,因为我是 laravel!
的新手这是我位于 view/posts
<!DOCTYPE html>
<html>
<head>
<title>Post</title>
</head>
<body>
<ul>
<?php
foreach ($posts as $post) {
echo "<li><a href = 'post/$post->$id'>".$post->$title."</a></li>";
}
?>
</ul>
</body>
</html>
PostController
:
<?php
namespace App\Http\Controllers;
use App\Post;
use Illuminate\Http\Request;
class PostController extends Controller
{
public function index(){
$posts = Post::all();
return view('posts.index',compact($posts));
}
public function showPost($id){
$post = Post::find($id);
return view('posts.post',compact($post));
}
}
我读了很多与此相关的 post 但没有任何帮助,我做错了什么? 这是我面临的问题:Undefined variable: posts (View: C:\xampp\htdocs\firstApplication\resources\views\posts\index.blade.php)
将视图更改为
</head>
<body>
<ul>
<?php
foreach ($posts as $post) {
echo "<li><a href = 'post/$post->id'>".$post->title."</a></li>";
}
?>
</ul>
</body>
</html>
将 $post->$id
更改为 $post->id
,将 $post->$title
更改为 $post->title
还有 compact($posts)
到 compact('posts')
和 compact($post)
到 compact('post')
假设您有另一个变量保存数据,那么您的索引方法应该如下所示:
访问 $post 的内容作为 $post->id
而不是 $post->$id
public function index(){
$posts = Post::all();
$someData = []; // extra variable
return view('posts.index',compact('posts','someData'));
}
要进行的另一项更改是在视图文件中: 附带说明:您不必使用传统的 PHP 标签和 foreach,而是可以使用 Laravel 的干净优雅的方法,如下所示:
替换您的代码块:
<?php
foreach ($posts as $post) {
echo "<li><a href = 'post/$post->$id'>".$post->$title."</a></li>";
}
?>
更新代码:
@foreach($posts as $post)
<li><a href = "{{ url('post/'. $post->id) }}" </a></li>
@endforeach