在Laravel为什么我得到模型[TodoList]的无查询结果?

时间:2015-05-23 01:05:09

标签: php mysql laravel-4

当我去“/ todos和/ todos / id”时,我的laravel路线出现问题一切都很完美但是当我尝试使用“/ todos / create”时,我得到一个没有查询结果的模型[ TodoList的] 我是新手,请帮助我...我真的不想放弃,因为我真的很喜欢这个mvc

这是我的路线

Route::get('/', 'TodoListController@index');

Route::get('todos', 'TodoListController@index');

Route::get('/todos/{id}', 'TodoListController@show');


Route::get('db', function() {

    $result = DB::table('todo_lists')->where('name', 'Your List')->first();
    return $result->name;

});

Route::resource('todos', 'TodoListController');

模型

<?php 

class TodoList extends Eloquent {} 

控制器

public function index()
    {
        $todo_lists = TodoList::all();
        return View::make('todos.index')->with('todo_lists', $todo_lists);
    }


    /**
     * Show the form for creating a new resource.
     *
     * @return Response
     */
    public function create()
    {
        $list = new TodoList();
        $list->name = "another list";
        $list->save();
        return "I am here by accident";
    }


    /**
     * Store a newly created resource in storage.
     *
     * @return Response
     */
    public function store()
    {

    }


    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return Response
     */
    public function show($id)
    {
        $list = TodoList::findOrFail($id);
        return View::make('todos.show')->withList($list);
    }

我的观点

@extends('layouts.main') @section('content')

<h1>All todo list</h1>

<ul>
    @foreach ($todo_lists as $list)
    <li>{{{ $list->name }}}</li>
    @endforeach
</ul>

@stop

2 个答案:

答案 0 :(得分:0)

您的模型没有fillable属性。尝试添加

protected $fillable = [
    'name'
];

您还需要定义一个表

protected $table = 'todolist';

<强>附加 您还需要手动添加资源控制器已定义的一些路由,例如您的show路由。

您还在create方法中存储模型。您应该在create方法中显示一个表单,并将结果存储在store方法中。

答案 1 :(得分:0)

问题在于您为/todos/{id}定义的显式路由。由于此路由是在resource路由之前定义的,因此它会捕获todos/create的路由,并将文本create视为{id}的{​​{1}}参数方法。

删除showget的明确todos路由,您的问题将得到解决。这两条路线都由/todos/create路线处理。