Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将模型数据传递给视图_Php_Laravel - Fatal编程技术网

Php 将模型数据传递给视图

Php 将模型数据传递给视图,php,laravel,Php,Laravel,尝试将模型传递给视图,但我发现了错误 模型 错误消息 未定义变量:cats(视图: C:\xampp\htdocs\ecommece\resources\views\app\template.blade.php) Laravel的工作方式是,当您将数据向下传递到视图时,它将仅对该视图和该视图中直接包含的其他刀片文件可用,因为它将在其范围内,而template.blade.php文件则不可用 据我所知,您的选项将是仅从索引视图中访问$cat变量,或者您可以转到位于以下目录中的BaseControl

尝试将模型传递给视图,但我发现了错误

模型

错误消息

未定义变量:cats(视图: C:\xampp\htdocs\ecommece\resources\views\app\template.blade.php)


Laravel的工作方式是,当您将数据向下传递到视图时,它将仅对该视图和该视图中直接包含的其他刀片文件可用,因为它将在其范围内,而
template.blade.php
文件则不可用

据我所知,您的选项将是仅从索引视图中访问
$cat
变量,或者您可以转到位于以下目录中的BaseController:

app\Http\Controllers\Controller.php

在构造器中,可以有如下内容:

public function __construct()
{
    $cats = Cat::all();

    View::share(['cats' => $cats]);
}
警告一句,第二个选项确实意味着
$cats
变量将在扩展基本控制器的任何控制器启动的每个页面加载上可用,因此实际上,这不是最有效的方法,因为这确实意味着每次加载一个页面时都会查询数据库,以获取Cat模型的所有记录,这可能不是每个请求都需要的

尽管如此,您也可以使用
CatController
的构造函数,以同样的方式至少限制加载对该控制器的请求的Cat模型

在我的选择中,似乎值得考虑重新构造刀片模板,以便在
index.blade.php
视图中更可行地使用
$cats
变量


我希望这有帮助

当您执行
视图时,您会说视图的名称是
index
('index'
但是你的文件名是
template
并且在一个嵌套的目录中,它应该是
app.template
,所以这里没有任何东西。你在哪里调用这个变量??
index.blade.php
文件或
template.blade.php
文件?索引从模板扩展而来,我正在调用模板``//index文件@扩展('app.template')```
<?php

namespace App\Http\Controllers;

use App\Cat;
use Illuminate\Http\Request;

class CatController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        //
        $cats = Cat::all();

        return view('index', compact('cats'));
    }
 {{dd($cats)}}
public function __construct()
{
    $cats = Cat::all();

    View::share(['cats' => $cats]);
}