未找到Laravel控制器功能

时间:2015-07-19 12:24:25

标签: php laravel

目前我正在使用laravel。当我想通过视图访问控制器时。我收到错误,找不到我的方法。

  

Action App \ Http \ Controllers \ RidesController @ edit未定义。 (视图:   C:\瓦帕\ WWW \资源\视图\乘坐\ rides.blade.php)

但是当我尝试使用索引方法时,它的工作原理是否足够奇怪?我该怎么办?

这是我的rides.blade.php:

  </thead>
                            <tbody>
                                 <tbody>
                                    @foreach($rides as $ride)
                                     <tr>
                                        <td><a href="{!! action('RidesController@edit',$ride->id) !!}">{!! $ride->id !!}</a> </td>
                                        <td>{!! $ride->created_at !!}</td>
                                        <td>{!! $ride->beginstand !!}</td>
                                        <td>{!! $ride->eindstand !!}</td>
                                        <td>{!! $ride->van !!}</td>
                                        <td>{!! $ride->naar !!}</td>
                                        <td>{!! $ride->bezoekadres !!}</td>
                                        <td>{!! $ride->geredenroute !!}</td>
                                        <td>{!! $ride->karakterrit !!}</td>
                                        <td>{!! $ride->toelichting !!}</td>
                                        <td>{!! $ride->kilometerszakelijk !!}</td>
                                        <td>{!! $ride->kilometersprive !!}</td>
                                    </tr>
                                     @endforeach
                                </tbody>    

我的路线控制器:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\models\ridesregistration;
use App\Http\Requests\RideFormRequest;

class RidesController extends Controller
{
    public function index()
    {
        $rides = ridesregistration::all();
        return view("rides.rides",compact('rides'));
    }

    public function create() 
    {
        return view('rides.create');
    }

    public function store(rideFormRequest $request)
    {
        $rides = new ridesregistration(array(
            'beginstand' =>$request->get('beginstand'),
            'eindstand' =>$request->get('eindstand'),
            'van' =>$request->get('van'),
            'naar' =>$request->get('naar'),
            'bezoekadres' =>$request->get('bezoekadres'),
            'geredenroute' =>$request->get('geredenroute'),
            'karakterrit' =>$request->get('karakterrit'),
            'toelichting' =>$request->get('toelichting'),
            'kilometerszakelijk' =>$request->get('kilometerszakelijk'),
            'kilometersprive' =>$request->get('kilometersprive')
            ));
        $rides->save();
        return redirect('/maakrit')->with('message','Rit '.$rides->id.' is succesvol aangemaakt.');
    }

    public function edit($id)
    {
        $rides = ridesregistration::whereId($id)->firstOrFail();
        return view('rides.edit',compact('rides','rides'));
    }
}

1 个答案:

答案 0 :(得分:0)

根据laravel 5文件 http://laravel.com/docs/5.0/controllers

你应该使用命名空间和action()帮助

http://joxi.ru/8AnBMZXSv8lpAO

如果我们将深入挖掘\ Illuminate \ Routing \ UrlGenerator :: action

我们会看到:

profile.php

你的行动('RidesController @ index')是有效的,因为它是在路线中定义的。 并且你的行动('RidesController @ edit',$ ride-&gt; id)不起作用,因为它不在路线中。

在app / Http / routes.php中定义此控制器操作