【问题标题】:Undefined variable in index.php of posts in laravellaravel 中帖子的 index.php 中未定义的变量
【发布时间】:2021-07-06 15:11:16
【问题描述】:

我的错误: 未定义变量: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

我不知道为什么会出现此错误,需要帮助!

【问题讨论】:

  • 您的 $asd 变量在您的返回视图中有引号。
  • @Crawdingle 删除引号后我又遇到了同样的错误。

标签: laravel variables undefined


【解决方案1】:

您将$asd 变量传递给查看...但名称不同。视图中的名称为$post

-&gt;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

【讨论】:

    【解决方案2】:

    '$asd' 中删除上面的破折号,

    将此更改为您的控制器

    use App\post;
    public function index()
    {
          $asd = post::all();
        return view ('posts.index')->with('post','$asd');
    }
    

    use App\post;
    public function index()
    {
        $asd = post::all();
        return view ('posts.index')->with('post',$asd);
    }
    

    分配 $asd 变量来发布然后你必须迭代发布变量而不是 $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
    

    改成,

    @extends('layout.app')
    @section('content')
       <h1> Peoples</h1>
       <hr>
    @if(count($post)>0)
    @foreach($post as $single_post)
    <p> {{$single_post->username}}  </p>
    @endforeach
    @else
     <p> No Posts  </p>
    @endif
    @endsection
    

    【讨论】:

    • 欢迎大哥,帮您把它标记为正确答案并点赞。
    • 兄弟,我的声望不到 15 个,所以我被避免投赞成票。一旦我拥有该状态,它将自动显示,因为我已经进行了投票。
    • 谢谢兄弟,兄弟我又遇到了形式问题。 form lai maile json ma "laravelcollective/html": "^5.4" rakhe ra app.php ko 别名 ra providers ma pani rakhe ani auto dumo pani hane。 ra 作曲家更新 pani gareko tara 创建 vanni 页面 ma 类表单未找到 vanyo。这哥们怎么办?
    • 兄弟我听不懂你的语言,请用英语说。
    • 对不起那个兄弟,请看这个:stackoverflow.com/questions/47068451/…
    【解决方案3】:

    您可以通过 2 种方法将数据传递给 Laravel 视图。

    1 使用-&gt;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}}
    

    【讨论】:

      【解决方案4】:

      由于我是 laravel 的新手,我有时会有些困惑,但我不了解整个过程。

      首先我从 $asd 中删除了引号,但我已将相同的变量传递给查看。

      正如@Bostjan 上面提到的,我想知道这个过程,谁能给我澄清一下

      您将 $asd 变量传递给 view ... 但名称不同。 视图中的名称将是

       $post->with('post', $asd)
      

      ... 传递 $asd 变量以查看并将其分配给 $post

      【讨论】:

      【解决方案5】:

      我发现了这个问题。 您在 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));
      }
      

      对不起,打字问题,我是波斯语❤

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-09-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-12
        • 1970-01-01
        • 2016-10-24
        相关资源
        最近更新 更多