没有模型[]的查询结果

时间:2014-10-30 16:30:00

标签: php laravel blade laravel-routing

当我尝试访问我的tipos / index页面时出错,我使用带有jeffrey way生成器的laravel 4框架来加速路由,控制器,模型等的创建过程。

这是我的代码:

路线:

Route::get('tipos/index', 
    array(
        'as' => 'index',
        'uses' => 'TiposController@index')
);

型号:

class Tipo extends Eloquent{

    protected $guarded = array();

        public static $rules = array(
        'clave_tipo' => 'required',
        'nombre_tipo' => 'required',
        'status' => 'required',
        'created_by' => 'required',
    );
}

控制器:

class TiposController extends BaseController {

protected $tipo;

public function index() 
    {
        $tipos = $this->tipo->all();
        return View::make('tipos.index', compact('tipos'));
    }

我的master.blade中的特定路线:

{{ link_to('tipos/index', trans('common/messages.tipos'))}} |

index.blade:

@extends('layouts.master')

@section('content')
    <h1>
        Tipos
    </h1>

<form name="form" id="form" method="post">

 <a class="editar button clear" href="/sistema/crearTipo">Nuevo Tipo</a>
    <input type="button" onclick="javascript:exportar();" value="Exportar" class="button" style="margin: 0px;">
    <input type="hidden" name="format" id="format" value="yy-mm-dd">
    <input type="hidden" name="excel" id="excel" value="false">
 <br><br>

<iframe name="x" height="0" width="0" style="display: none;"></iframe>

<div class="title">
    <form name="form" id="form" method="post">
        <iframe name="x" height="0" width="0" style="display: none;"></iframe>
        <table class="datatable" id="tipos">
            <thead>
                <th>C&Oacute;DIGO</th>
                <th>DESCRIPCI&Oacute;N</th>
                <th>EDITAR</th>
                <th>ELIMINAR</th>
            </thead>

        </table>
    <div class="foot">

    </div>
    </form>
</div> 
@stop

出现此错误:Illuminate \ Database \ Eloquent \ ModelNotFoundException                        没有模型[Tipo]的查询结果。

如果有人可以提供帮助,我将不胜感激!

3 个答案:

答案 0 :(得分:1)

解决了,我有两条自述路线:

Route::resource('tipos', 'TiposController');

Route::get('tipos/index', 
    array(
        'as' => 'index',
        'uses' => 'TiposController@index')
);

只需删除重复的路线tipos / index并输入mi master.blade:

{{ link_to**_route**('tipos.index', trans({{'common/messages.tipos'))}} |

冲突是因为我需要mi master中的 _route

谢谢!

答案 1 :(得分:0)

您需要将Tipo模型注入控制器。

class TiposController extends BaseController {

    protected $tipo;

    function __construct(Tipo $tipo){
        $this->tipo = $tipo;
    }

}

不确定为什么会得到ModelNotFoundException,因为您从未在控制器中注入Model。您的tipos表中是否有记录?

答案 2 :(得分:0)

我有同样的问题。我在单个单列表后放置索引路径。然后我只是将索引任务放在单个列表之前。然后它的作品。

Route::get('index', 'TasksController@index');

Route::get('/{task}', 'TasksController@single');

它有线但有效!