当我去“/ 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
答案 0 :(得分:0)
您的模型没有fillable
属性。尝试添加
protected $fillable = [
'name'
];
您还需要定义一个表
protected $table = 'todolist';
<强>附加强>
您还需要手动添加资源控制器已定义的一些路由,例如您的show
路由。
您还在create
方法中存储模型。您应该在create方法中显示一个表单,并将结果存储在store
方法中。
答案 1 :(得分:0)
问题在于您为/todos/{id}
定义的显式路由。由于此路由是在resource
路由之前定义的,因此它会捕获todos/create
的路由,并将文本create
视为{id}
的{{1}}参数方法。
删除show
和get
的明确todos
路由,您的问题将得到解决。这两条路线都由/todos/create
路线处理。