【问题标题】:Can't get the right view in laravel 5.6在 laravel 5.6 中无法获得正确的视图
【发布时间】:2018-04-07 07:00:11
【问题描述】:

“未定义变量:Pro(查看:E:\xampp\htdocs\mypro\resources\views\folder\product.blade.php)”我使用的是laravel 5.6 试图从现有数据库中获取数据。

产品型号

       <?php

        namespace App;

        use Illuminate\Database\Eloquent\Model;


        class Product extends Model
        {


            protected $table='products';
            protected $primaryKey = 'p_id';


            protected $fillable = ['p_title', 'p_element', 'p_description',          'p_duration', 'p_amount', 'p_startDate', 'p_endDate', 'p_old_price', 'p_new_price', 'p_keyWords', 'p_category', 'p_status', 'prefertime'];

        }

产品控制器

            namespace App\Http\Controllers;

            use Illuminate\Http\Request;

            class ProductController extends Controller
            {

                public function index()
                {
                   $pro=Product::all();
                    return view('Folder.product'), compact('pro'));
                }       
            }

Product.blade.php @extends('layouts.app')

    @section('content')

      <h1>Products</h1>

     <table style="width:100%">
      <tr>
        <th>ID</th>
        <th>Name</th>
      </tr>
      <tr>

       @foreach($Pro as $row)
        <td>{{$row['p_id']}}</td>
        <td>{{$row['p_title']}}</td>
       @endforeach
      </tr>
    </table> 


    @endsection

【问题讨论】:

标签: php laravel-5


【解决方案1】:

由于 pro 没有大写,因此您应按以下方式进行更正。您还应该在执行页面之前检查数组不为空,否则您会发现自己有更多错误;

还请注意,我已将您的 ' 移到了 foreach 中,因为这是使表格正确显示所必需的。

@section('内容')

  <h1>Products</h1>

 <table style="width:100%">
  <tr>
    <th>ID</th>
    <th>Name</th>
  </tr>


   @if(! empty($pro))
     @foreach($pro as $row)
     <tr>
       <td>{{$row['p_id']}}</td>
       <td>{{$row['p_title']}}</td>
    </tr>
     @endforeach
  @else
     <tr>
       <td colspan="2">No records</td>
    </tr>
  @endif
</table> 


@endsection

此外,在您的控制器中,视图应为 return view('Folder.product', compact('pro')); 不是 return view('Folder.product'), compact('pro'));

【讨论】:

    【解决方案2】:

    资本,你需要使用$pro而不是$Pro。

    @foreach($pro as $row)
      <td>{{$row['p_id']}}</td>
      <td>{{$row['p_title']}}</td>
    @endforeach
    

    我希望它有效。

    【讨论】:

    • 我已经按照你的说法改变了一些东西,但它仍然无法正常工作。它显示“未定义的变量:pro(查看:E:\xampp\htdocs\mypro\resources\views\folder\product.blade.php)”据我所知“$pro=Product::all();”这部分反应不正确。有什么建议吗?
    • 如果你删除视图的foreach,你会得到什么?景色?
    猜你喜欢
    • 2021-08-15
    • 2021-02-10
    • 2016-09-22
    • 2012-04-29
    • 2014-07-23
    • 2019-02-25
    • 1970-01-01
    • 2018-03-03
    • 1970-01-01
    相关资源
    最近更新 更多