簡體   English   中英

如何在 Laravel 中的 welcome.blade.php 中顯示我的數據庫中的數據?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM