我很难让此处定义的 Restful 路由(Laravel 文档:Restful Controllers)正常工作。
我可以让创建表单和索引(所有视图)正常工作,但我无法让单个项目的链接正常工作。getShow
我已将我的路由定义为 restful,因此它应该在我的 routes.php 中使用自动路由:
// People
Route::controller('people', 'PeopleController');
这是我的控制器 PeopleController.php:
<?php
class PeopleController extends BaseController {
public $restful = true;
public function getIndex()
{
return View::make('people.index')
->with('people', $people);
}
public function getShow($id)
{
return 'success! it finally worked!';
}
public function getCreate()
{
return View::make('people.create');
}
public function postStore()
{
return Redirect::to('people')
->with('success', 'Person added successfully');
}
}
这是我的 index.blade.php 模板,它应该链接到 show.blade.php 模板:
<ul class="thumbnails">
@foreach ($people as $people)
<li> <a href="{{ URL::to('people/' . $people->people_id) }}" class="thumbnail"> <img src="https://fbcdn-sphotos-h-a.akamaihd.net/hphotos-ak-ash4/s200x200/486010_633561579994787_1827482783_n.jpg" /> </a>
<div class="caption">
<p> {{ $people->people_id }}<br />
{{ $people->firstname }}<br />
{{ $people->lastname }}<br />
{{ $people->line1 }}<br />
{{ $people->city }}<br />
<br />
{{ $people->state }} {{ $people->zip }}<br />
{{ $people->country }} </p>
<p>
<button class="btn btn-small btn-primary" type="button">Actions</button>
<button class="btn btn-small" type="button">View</button>
</p>
</div>
</li>
@endforeach
</ul>
我创建了一个名为 show.blade.php 的视图。
@extends('master')
@section('title')
@parent
:: Home
@stop
@section('content')
<p>it finally worked!</p>
@stop
但是,每当我转到诸如 people/1 之类的项目时,我都会遇到大量错误:。
Symfony\Component\HttpKernel\Exception\NotFoundHttpException
…\vendor\laravel\framework\src\Illuminate\Routing\Controllers\Controller.php290
Illuminate\Routing\Controllers\Controller missingMethod
<#unknown>0
call_user_func_array
…\vendor\laravel\framework\src\Illuminate\Routing\Controllers\Controller.php138
Illuminate\Routing\Controllers\Controller callMethod
…\vendor\laravel\framework\src\Illuminate\Routing\Controllers\Controller.php115
Illuminate\Routing\Controllers\Controller callAction
…\bootstrap\compiled.php9980
Illuminate\Routing\{closure}
<#unknown>0
call_user_func_array
…\bootstrap\compiled.php16626
Illuminate\Routing\Route callCallable
…\bootstrap\compiled.php16605
Illuminate\Routing\Route run
…\bootstrap\compiled.php10000
Illuminate\Routing\Router dispatch
…\bootstrap\compiled.php1010
Illuminate\Foundation\Application dispatch
…\bootstrap\compiled.php993
Illuminate\Foundation\Application run
…\public\index.php49
在这一点上,我已经将我的代码剥离到最简单的部分,只是为了让它工作。我发现也许 RESTful 功能没有那么有用,因为文档太少了。有没有办法获得旧版本 3 文档?
如果有人能看到我做错了什么,我将不胜感激。根据文档,这似乎是正确的,但它根本没有详细说明这是如何工作的。:( 作为 Laravel 的新手,我不确定我是否只是遗漏了一些东西,或者文档是否真的没有详细说明需要做什么。
只创建自己的路线而不是尝试使用内置函数会更好吗?谢谢您的帮助。