我的错误: 未定义的变量:asd(查看:C:\ xampp \ htdocs \ kproject \ resources \ views \ posts \ index.blade.php)
控制器:
use App\post;
public function index()
{
$asd = post::all();
return view ('posts.index')->with('post','$asd');
}
Index.blade.php
@extends('layout.app')
@section('content')
<h1> Peoples</h1>
<hr>
@if(count($asd)>0)
@foreach($asd as $post)
<p> {{$post->username}} </p>
@endforeach
@else
<p> No Posts </p>
@endif
@endsection
我不知道为什么会收到此错误,请提供帮助!
答案 0 :(得分:4)
您正在将$asd
变量传递给视图...但名称不同。视图中的名称为$post
。
->with('post', $asd)
...传递$ asd变量进行查看并将其分配给$ post
将index.blade.php更改为:
@extends('layout.app')
@section('content')
<h1> Peoples</h1>
<hr>
@if(count($post)>0)
@foreach($post as $p)
<p> {{$p->username}} </p>
@endforeach
@else
<p> No Posts </p>
@endif
@endsection
答案 1 :(得分:0)
您可以通过2种方法将数据传递给Laravel视图。
1使用->with()
方法。
您的控制器方法
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Post;
class PostController extends Controller
{
public function index()
{
$post_data = post::all();
return view('posts.index')->with('post',$post_data);
}
}
或
2您可以将数组传递给view()
方法的第二个参数。
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Post;
class PostController extends Controller
{
public function index()
{
$post_data= post::all();
$post_data = ['post' => $post_data]
return view('posts.index')->with('post',$post_data);
}
}
您可以通过以下
在Index.blade.php
中访问它
{{$post}}
答案 2 :(得分:0)
由于我是laravel的新手,我有时会感到有些困惑,但我不了解整个过程。
首先,我从$ asd中删除了引号,但我已经传递了相同的变量来查看。
如上所述@Bostjan,我想知道这个过程,任何人都可以向我澄清这个
您正在将$ asd变量传递给view ...但名称不同。 视图中的名称将是
$post->with('post', $asd)
...传递$ asd变量来查看并将其分配给$ post
答案 3 :(得分:0)
从"This sentence is great amazing even yeah whatever screw grammar"
,
将其更改为您的控制器
'$asd'
到
use App\post;
public function index()
{
$asd = post::all();
return view ('posts.index')->with('post','$asd');
}
分配$ asd varible发布然后在视图中你必须迭代post varible而不是$ asd,
在index.blade.php中,
use App\post;
public function index()
{
$asd = post::all();
return view ('posts.index')->with('post',$asd);
}
将其更改为,
@extends('layout.app')
@section('content')
<h1> Peoples</h1>
<hr>
@if(count($asd)>0)
@foreach($asd as $post)
<p> {{$post->username}} </p>
@endforeach
@else
<p> No Posts </p>
@endif
@endsection
答案 4 :(得分:0)
我发现了这个问题。 您在 index 函数中发送 posts 变量。
public function index(){
$posts = Post::all();
return view('posts.index',compact('posts'));
}
但是当您想创建新帖子时,很可能会遇到此错误,因此这里执行了 store 函数 和 index 函数 不在控制器中执行,因为 store 函数负责存储表单信息。然后你编辑这个函数如下。
public function store(Request $request) {
$post = new Post();
$post->title = $request->input("title");
$post->description = $request->input("description");
$post->save();
$posts = Post::all(); //Send posts in compact
return view("posts.index", compact($posts));
}
请原谅我打字的问题,我会说波斯语❤