我正在尝试使用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
答案 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]);