【问题标题】:new controller creation Laravel新控制器创建 Laravel
【发布时间】:2016-08-28 17:12:39
【问题描述】:


所以在学习 Laravel 5 的过程中,遇到了如下问题。

我在文件夹中创建了名为 ContactController 的新控制器:
app/Http/Controllers/Pages/ContactController.php
我有以下代码:

<?php

namespace App\Http\Controllers\Pages;

use App\Http\Controllers\Controller;

class ContactController extends Controller {

    public function index() {
        return 'This is the Contact page.';
    }

    public function getMyDetails() {
        return 'This is the My Details page.';
    }
}

我还在我的网络路由中添加了以下代码:
routes/web.php

Route::resource('contact', 'Pages\ContactController');


据我了解,当我打开 URL 地址:http://laravel.devpeaks.com/public/contact/my-details 时,它应该会自动向我显示消息“这是我的详细信息页面。”。相反,我得到了错误:
已编译的.php 行 6271 中的 BadMethodCallException: 方法控制器不存在。

【问题讨论】:

    标签: php laravel controller


    【解决方案1】:

    Resource controllers 不能那样工作。 Route::resource 将为您创建 7 条 CRUD 路由:indexshowcreatestoreeditupdatedelete

    如果要添加my-details 路由,请将其添加到routes.php

    Route::get('contact/my-details', 'Pages\ContactController@getMyDetails');
    

    【讨论】:

    • 好吧,现在你应该赢了。 :)
    • 为了避免通过 ::get 手动创建每条路由,我认为可以通过键入一次,Laravel 可以自动将所有其他方法创建为路由?这是我今天从教程中了解到的。这是真的吗? :) 就像它会从方法名称中获取“getMyDetails”并将其解释为 URL“/my-details”。
    • 不,没有controller() 是不可能的,它已被弃用和删除。看来您正在阅读一些非常古老的教程。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-10
    • 2017-04-26
    • 1970-01-01
    • 2016-09-03
    • 2018-12-08
    相关资源
    最近更新 更多