【问题标题】:Undefined variable laravel 4.1未定义的变量laravel 4.1
【发布时间】:2014-06-03 02:18:56
【问题描述】:

我正在尝试从数据库中获取数据并将值传递给控制器​​。我是 laravel 的新手,这是第一个查询。这是我的代码:

class Cars extends Eloquent
    {


    }

FleetController.php

public function index()
    {
           $fleet = Cars::all()->first()->Description;
           return View::make('pages.home')->with('fleet', $fleet);
    }

home.blade.php

@extends('layouts.default')
@section('content')
{{ $fleet }}
@stop

问题是它在日志中显示了这个

下一个异常“ErrorException”带有消息

'Undefined variable: fleet (View: C:\wamp\www\laravel\app\views\pages\home.blade.php)' in C:\wamp\www\laravel\app\storage\views\7da5cff457f71f3156f90053865b6cb1:2
Stack trace:

【问题讨论】:

    标签: php mysql laravel blade


    【解决方案1】:

    你应该尝试使用

    @if(Session::has('fleet'))
    {{Session::get('fleet')}}
    @endif
    

    您的 '->with()' 只是将变量闪烁到您的会话中。不过,您仍然需要从那里检索它。

    此外,您应该尝试创建一个与您的表同名的模型。如果您要创建一个扩展 Eloquent 的模型 Car,它将自动链接到您的 Cars 表。 Laravel 文档:

    类的小写复数名称将用作表格 除非明确指定另一个名称。

    这部分也很重要:

    Eloquent 还会假设每个表都有一个主键列 命名为“id”。

    配置完成后,您将能够通过简单的操作获得汽车的描述

    Car::all()->first()->description;
    

    另请参阅:Laravel docs on eloquent

    更新

    应该做什么:

    Car.php

    class Car extends Eloquent{
    //Let's try setting these manually. Make sure they are correct.
    protected $table = 'cars';
    protected primaryKey = 'id';
    }
    

    FleetController.php

    public function index()
    { 
    //You have to call the model here, so singular 'Car'.
    $fleet = Car::all()->first()->Description; 
    return View::make('pages.home')->with('fleet', $fleet);
    }
    

    home.blade.php

    @extends('layouts.default')
    @section('content')
    //You can use blade's @if as well:
    @if(Session::has('fleet'))
    {{Session::get('fleet')}}
    @endif
    @stop
    

    【讨论】:

    • 按你说的编辑我的问题,但仍然不起作用。下一个异常 'ErrorException' 并在 C:\wamp\www\laravel\app\storage 中显示消息“未定义变量:车队(视图:C:\wamp\www\laravel\app\views\pages\home.blade.php)” \views\7da5cff457f71f3156f90053865b6cb1:2 堆栈跟踪:
    • 我正在尝试创建表和 cmd:生成优化的类加载器正在编译常用类并在此处停止
    • @Arual 您是否也在您的视图中添加了 if(Session...发布有关 Eloquent 模型的更多信息。
    • 可以这样查看 @extends('layouts.default') @section('content') if(Session::has('fleet') { $fleet = Session::get('舰队'); {{ $fleet }} } @stop
    • 是的,这似乎是正确的。但这仍然不起作用?你的表名是什么?汽车?它有一个“id”列吗?您的 index() 的 routing.php 中有什么?
    猜你喜欢
    • 1970-01-01
    • 2019-04-29
    • 1970-01-01
    • 2015-05-15
    • 2019-03-01
    • 2023-03-05
    • 2018-01-26
    • 2020-09-24
    • 2021-10-31
    相关资源
    最近更新 更多