【问题标题】:Undefined variable: data , $data is undefined. Laravel 8未定义变量: data , $data 未定义。拉拉维尔 8
【发布时间】:2021-12-30 18:20:56
【问题描述】:

我收到一个错误,说未定义的变量数据指的是我的刀片中的 foreach

所以我的错误是: 未定义变量:data(查看:C:\Users\adila\Desktop\onlineshop\onlineshop\resources\views\user\product.blade.php)

这是我的刀片文件:

<div class="latest-products">
      <div class="container">
        <div class="row">
          <div class="col-md-12">
            <div class="section-heading">
              <h2>Latest Products</h2>
              <a href="products.html">view all products <i class="fa fa-angle-right"></i></a>
            </div>
          </div>`enter code here`
         
          @foreach($data as $product)


          <div class="col-md-4">
            <div class="product-item">
              <a href="#"><img src="assets/images/product_06.jpg" alt=""></a>
              <div class="down-content">
                <a href="#"><h4>{{$product->title}}</h4></a>
                <h6>$ {{$product->harga}}</h6>
                <p>{{$product->deskripsi}}</p>
                
              </div>
            </div>
          </div>

        @endforeach

        </div>
      </div>
    </div>

这是我的控制器:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use App\Models\User;
use App\Models\Product;

class HomeController extends Controller
{
    public function redirect(){
        $usertype = Auth::user()->usertype;

        if($usertype=='1'){
            return view('admin.home');
        }

        else{
            return view('user.home');
        }
    }

    public function index(){


        if(Auth::id()){
            return redirect('redirect');
        }
        else{

            $data = Product::all();

            return view('user.home',compact('data', $data));
        }
        
    }
}

还有我的路线:

Route::get('/', [HomeController::class, 'index']);

请帮帮我

【问题讨论】:

    标签: php css laravel laravel-8 laravel-blade


    【解决方案1】:

    请从 compact() 函数中删除 $data

     return view('user.home',compact('data'));
    

    您将变量 ‍$data‍ 传递给了 ‍‍‍‍view('user.home', compact('data')),但您在 product.blade 中有错误,我认为问题出在 product. blade 文件上。检查那个文件

    【讨论】:

    • 另一种选择是使用with() 方法,例如:return view('user.home')-&gt;with(['data' =&gt; $data]);
    • 我已经尝试过了。但它仍然是错误的。未定义变量
    • 您将变量$data 传递给view('user.home', compact('data')),但您的产品中有错误。我认为问题出在product.blade 文件上。检查那个文件
    【解决方案2】:

    您的错误出现在 product.blade.php 视图中,而在您的控制器中,您正在返回 home.blade.php 视图。

    您可以避免在您的product.blade.php 中出现Undefined variable 错误,在您的视图中添加一个 isset,如下所示:

    @if(isset($data))
       @foreach($data as $product)
           (...)
       @endforeach
    @endif
    

    【讨论】:

      猜你喜欢
      • 2023-01-25
      • 2019-05-26
      • 2023-01-12
      • 1970-01-01
      • 1970-01-01
      • 2017-03-16
      • 2018-10-14
      • 1970-01-01
      • 2014-10-24
      相关资源
      最近更新 更多