异常消息:未定义的变量:

时间:2019-07-24 05:31:09

标签: php mysql laravel

我正在尝试使用laravel从mysql数据库中检索数据。它显示错误undefined variable

view.blade.php

<table>
  <tr>
    <th>Title</th>
    <th>Body</th>
    <th>Category</th>
  </tr>
  @foreach($post as $row)
  <tr>
    <td>{{$row['title']}}</td>
    <td>{{$row['body']}}</td>
    <td>{{$row['category_id']}}</td>
  </tr>
  @endforeach
</table>

postController代码

 public function index()
    {
        $post = posts::all()->toArray();
        return view('view',compact('post'));
    }

我希望它显示我的数据库表的结果,但显示错误Undefined variable

3 个答案:

答案 0 :(得分:2)

首先通过cmd转到项目文件夹,然后

php artisan make:model Posts.

您将在App文件夹中创建名为Posts.php的文件

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Posts extends Model
{
    protected $table   = 'posts';

    protected $fillable = [
        'title', 'body','category_id'
    ];
}

别忘了在控制器顶部添加模型名称空间,例如:

use App\Posts;

,然后在您的索引方法中,

public function index()
{
    $post = Posts::all();

    return view('your_views_correct_path',compact('post'));
}

无需通过将帖子集转换为数组即可传递帖子集以进行查看。只需通过上图所示的帖子即可。 然后,您可以通过在foreach循环中循环帖子收集来轻松访问帖子属性。

@if(!empty($post))

    @foreach($post as $p)
        {{ $p->title }} // for title
        {{ $p->body }} // for body and so on
    @endforeach
@else
    <p>Post are empty.</p>
@endif

答案 1 :(得分:1)

in cmd :  php artisan make:model Posts
then check App/ Posts.
<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Posts extends Model
{
     protected $table   = 'posts';

    protected $fillable = [
        'title', 'body','category_id'
    ];
}



then  in Controller
  public function index()
        {
            $post = Posts::all();

            return view('view',compact('post'));
        }

答案 2 :(得分:0)

您返回主刀片文件,但在view.blade.php文件中使用$ post变量。 在控制器中返回view.blade.php文件

 $post = posts::all();
    return view('view')->with(['post'=>$post]);