質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

1回答

2924閲覧

Laravelで認証を自作しようとしたらまったくいじっていないファイルでFunction () does not existとなる

lkjgffh

総合スコア37

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

0クリップ

投稿2017/12/19 02:51

###前提・実現したいこと
(最終目的)laravelの認証はUserを基本使いますが、Companyという独自のクラスでログインできるようにしたい
とりあえず今は、新規登録画面を確認しようとhttp://アプリ名/company/sigunpへアクセス
新規登録画面を表示できるようにしたい

###発生している問題・エラーメッセージ
http://アプリ名/company/sigunpへアクセスすると下記のエラーが出ます

ReflectionException Function () does not exist

イメージ説明

###今までの操作
既存DBのテーブルからCompanyのマイグレーションを作成・モデルとコンロトーらを追加
新規登録画面を追加

ルート

Route::group(['prefix' => 'company'], function() { Route::get('/sigunp',[ 'company' => 'CompanyController@getSignup', 'as' => 'company.sigunp' ]); });

コントローラー

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Model\Company; class CompanyController extends Controller { public function getSignup(){ return View('sigunp'); } }

モデル

<?php namespace App; use Illuminate\Database\Eloquent\Model; class Company extends Model { //関連テーブル名 protected $table = 'companies'; }

コマンドでルーティングを確認したとき
| | GET|HEAD | company/sigunp | company.sigunp | Closure | web

###補足情報(言語/FW/ツール等のバージョンなど)
Laravel5.5
DB => Mysql

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ルーティングが間違っているからです。Route::getに配列パラメータを渡して設定するのであれば、コントローラのメソッド指定はcompanyではなくusesです。usesが指定されていないため、Laravelがなにを実行してよいかわからずエラーが起きています。

php

1Route::group(['prefix' => 'company'], function() { 2 Route::get('/sigunp',[ 3 'uses' => 'CompanyController@getSignup', // ←ここが間違っている 4 'as' => 'company.sigunp' 5 ]); 6});

配列パラメータで指定する方法は5.5のリファレンスでは消えているので、おそらく非推奨になっています。いまのリファレンスのやり方であればこうなります。

PHP

1Route::group(['prefix' => 'company'], function() { 2 Route::get('/sigunp', 'CompanyController@getSignup')->name('company.sigunp'); 3});

投稿2017/12/19 03:07

masaya_ohashi

総合スコア9206

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問