[英]How to Display the data in my database in welcome.blade.php in Laravel?
我想知道如何在我的數據庫中傳遞數據並將其顯示在 Welcome.blade.php 我已經有一個數據但我不能讓它顯示在這個視圖中
這是我在 HomeController.php 中的code
。
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class HomeController extends Controller
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('auth');
/**
* Show the application dashboard.
*
* @return \Illuminate\Contracts\Support\Renderable
*/
}
public function index()
{
return view('home');
}
}
這是我在 web.php 中的代碼,看到我正在使用 HomeController@index
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class HomeController extends Controller
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('auth');
/**
* Show the application dashboard.
*
* @return \Illuminate\Contracts\Support\Renderable
*/
}
public function index()
{
return view('home');
}
}
現在在我的 Welcome.blade.php 我想在我的數據庫中顯示數據,我現在的代碼就是這個。
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row justify-content-center">
<div class="col-md-8">
<div class="card">
@foreach($posts ?? '' as $post)
<div class="card-header">
{{$post->title}}
</div>
@endforeach
</div>
</div>
</div>
</div>
</div>
@endsection
這是我的 web.php 代碼
<?php
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('/', function () {
return view('welcome');
});
Route::get('about', function () {
return view('about');
})->middleware('checking');
Auth::routes(['register' => false]);
Route::group(['middleware' => 'auth'], function(){
Route::get('/home', [
'uses' => 'HomeController@index',
'as' => 'home'
]);
Route::get('/post/create', [
'uses' => 'PostsController@create',
'as' => 'post.create'
]);
Route::post('/blogs/store', [
'uses' => 'PostsController@store',
'as' => 'blogs.store'
]);
Route::get('/blogs/delete/{id}', [
'uses' => 'PostsController@destroy',
'as' => 'blogs.delete'
]);
Route::get('/blogs/edit/{id}', [
'uses' => 'PostsController@edit',
'as' => 'blogs.edit'
]);
Route::post('/blogs/update/{id}', [
'uses' => 'PostsController@update',
'as' => 'blogs.update'
]);
Route::get('/posts', [
'uses' => 'PostsController@index',
'as' => 'posts'
]);
});
Route::get('register', function () {
return redirect('/home');
});
這也是我的帖子。php model
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
protected $fillable = [
'title','content','featured'
];
public function getFeaturedAttribute($featured) {
return asset($featured);
}
}
但為什么我會收到這種錯誤?
為 foreach() 提供的參數無效(查看:C:\xampp\htdocs\porge\dev\resources\views\welcome.blade.php)
好吧。 這就是我所看到的。 您想在歡迎視圖中顯示數據,該視圖直接加載到您的路線中而不傳遞任何數據。
Route::get('/', function () {
return view('welcome');
});
=> 我的建議:傳遞數據的常用方法是使用 controller。 因此,您可以在您的情況下使用 HomeController 或創建一個 WelcomeController(接下來我將使用它)。
您在 WelcomeController 中的公共索引 function
public function index()
{
$posts = Post::all();
return view('welcome')->with('posts', $posts);
}
您的路線 /
Route::get('/', [
'uses' => 'WelcomeController@index',
'as' => 'welcome_page'
]);
然后你在歡迎視圖中像這樣循環帖子
@foreach($posts as $post)
<div class="card-header">
{{$post->title}}
</div>
@endforeach
希望這會有所幫助。
我在這里看到幾個問題。 是的,您應該發布與此請求有關的 web.php 部分。 假設您的“帖子”表有一個名為Post
的 model
public function index()
{
$posts = Post::all();
return view('home', compact('posts'));
}
在你的刀片中:
<div class="card">
<div class="card-body">
<ul class="list-group">
@foreach($posts as $post)
<li class="list-group-item">
{{$post->title}}
</li>
@endforeach
</ul>
</div>
</div>
這樣看起來會干凈很多,你不覺得嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.