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

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

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

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

Laravel 5

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

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

1回答

2108閲覧

Class ~ does not exist について

退会済みユーザー

退会済みユーザー

総合スコア0

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

Laravel 5

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

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

1クリップ

投稿2020/09/21 11:44

編集2020/09/21 12:35

前提・実現したいこと

Twitter APIを利用してログインをできるようにしたいと考えております。

現在発生している問題

ログインボタンを作成し、クリックをするが以下のエラーが表示。
「"Class App\Http\Controllers\Auth\OAuthLoginController does not exist"」

自分でもコードを再確認するなど行いましたが、解決には至っておりません。

エラー画面

イメージ説明

app/Http/Controllers/Auth/OAuthLoginController.php

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use App\Models\User; use App\Models\Social; use Socialite; class OAuthLoginController extends Controller { public function getTwitterAuth() { return Socialite::driver('twitter')->redirect(); } public function authTwitterCallback() { $data = Socialite::driver('twitter')->user(); $res = Social::query() ->where('id',$data->id) ->get(); if(!empty($res[0]->user->id)){ //ログインしている場合 Auth::login($res[0]->user); return redirect('/')->with('status', 'ログインしました'); } else { //まだログインしたことない場合 情報をセッションに保存し新規会員登録へ session(['twitter' => $data]); return redirect('register')->with('status', 'Twitter連携しました'); } } }

routes/web.php

<?php /* |-------------------------------------------------------------------------- | Web Routes |-------------------------------------------------------------------------- | | Here is where you can register web routes for your application. These | routes are loaded by the RouteServiceProvider within a group which | contains the "web" middleware group. Now create something great! | */ Route::get('/', function () { return view('welcome'); }); Auth::routes(); Route::get('/home', 'HomeController@index')->name('home'); // ログイン状態 Route::group(['middleware' => 'auth'], function() { // ユーザ関連 Route::resource('users', 'UsersController'); }); // ログイン状態 Route::group(['middleware' => 'auth'], function() { // ユーザ関連 Route::resource('users', 'UsersController', ['only' => ['index', 'show', 'edit', 'update']]); // フォロー/フォロー解除を追加 Route::post('users/{user}/follow', 'UsersController@follow')->name('follow'); Route::delete('users/{user}/unfollow', 'UsersController@unfollow')->name('unfollow'); }); // ログイン状態 Route::group(['middleware' => 'auth'], function() { // ユーザ関連 Route::resource('users', 'UsersController', ['only' => ['index', 'show', 'edit', 'update']]); // フォロー/フォロー解除を追加 Route::post('users/{user}/follow', 'UsersController@follow')->name('follow'); Route::delete('users/{user}/unfollow', 'UsersController@unfollow')->name('unfollow'); }); // ログイン状態 Route::group(['middleware' => 'auth'], function() { // ユーザ関連 Route::resource('users', 'UsersController', ['only' => ['index', 'show', 'edit', 'update']]); // フォロー/フォロー解除を追加 Route::post('users/{user}/follow', 'UsersController@follow')->name('follow'); Route::delete('users/{user}/unfollow', 'UsersController@unfollow')->name('unfollow'); // ツイート関連 Route::resource('shares', 'SharesController', ['only' => ['index', 'create', 'store', 'show', 'edit', 'update', 'destroy']]); // コメント関連 Route::resource('comments', 'CommentsController', ['only' => ['store']]); // いいね関連 Route::resource('favorites', 'FavoritesController', ['only' => ['store', 'destroy']]); }); Route::get('/auth/{service}', 'Auth\OAuthLoginController@getTwitterAuth')->where('service', 'twitter'); Route::get('/auth/twitter/callback', 'Auth\OAuthLoginController@authTwitterCallback');

resources/views/welcome.blade.php

@extends('layouts.app') @section('content') <div class="flex-center position-ref full-height"> <div class="content"> <body class="text-center"> <form class="form-signin"> <h1 class="h3 mb-3 font-weight-normal">To all people who love MARVEL.</h1> <input type="button" class="btn btn-lg btn-secondary btn-block" onclick="location.href='{{ route('login') }}'" value="Login"> <br> <input type="button" class="btn btn-lg btn-primary btn-block" onclick="location.href='{{ route('register') }}'" value="Register"> <a href="auth/twitter">Twitter Login</a> </form>   <!-- Optional JavaScript --> <!-- jQuery first, then Popper.js, then Bootstrap JS --> <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js" integrity="sha384-OgVRvuATP1z7JjHLkuOU7Xw704+h835Lr+6QL9UvYjZE3Ipu6Tp75j7Bh/kR0JKI" crossorigin="anonymous"></script> </body> @endsection

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

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

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

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

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

guest

回答1

0

ベストアンサー

diff

1- Route::get('/auth/{service}', 'Auth/OAuthLoginController@getTwitterAuth')->where('service', 'twitter'); 2- Route::get('/auth/twitter/callback', 'Auth/OAuthLoginController@authTwitterCallback'); 3+ Route::get('/auth/{service}', 'Auth\OAuthLoginController@getTwitterAuth')->where('service', 'twitter'); 4+ Route::get('/auth/twitter/callback', 'Auth\OAuthLoginController@authTwitterCallback');

diff

1<?php 2 3- namespace App\Http\Controllers; 4+ namespace App\Http\Controllers\Auth; 5 6use Illuminate\Http\Request; 7use Illuminate\Support\Facades\Auth; 8use App\Models\User; 9use App\Models\Social; 10+ use App\Http\Controllers\Controller; 11 12use Socialite; 13 14class OAuthLoginController extends Controller

投稿2020/09/21 12:14

編集2020/09/21 13:07
phper.k

総合スコア3923

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

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

退会済みユーザー

退会済みユーザー

2020/09/21 12:19

回答いただきありがとうございます。 「/」を「\」に変更し修正いたしました。 再度ログインを試してみたところ、同じエラーが表示されました。 エラー文:"Class App\Http\Controllers\Auth\OAuthLoginController does not exist"
phper.k

2020/09/21 12:20

「同じエラーが表示されました。」 同じじゃないですよね
退会済みユーザー

退会済みユーザー

2020/09/21 12:26

申し訳ございません。
y_waiwai

2020/09/21 12:39

違うエラーを見ないふりしてたらいつまでも解決しませんよ
phper.k

2020/09/21 12:45

回答に追記しておきました
退会済みユーザー

退会済みユーザー

2020/09/21 12:51

追記いただきありがとうございます。 namespace を修正し、再度ログインを試してみました。 「class OAuthLoginController extends Controller」の箇所がハイライトされ、以下のエラー文が表示されました。 「"Class 'App\Http\Controllers\Auth\Controller' not found"」
phper.k

2020/09/21 13:08

Laravel 以前に、PHPの勉強した方がいいですね。
phper.k

2020/09/21 13:26

追記しておきましたよ。 これじゃまるで、デバッグ代行サービスですね
退会済みユーザー

退会済みユーザー

2020/09/21 13:59

phper.k 様 無事にログイン画面までは行くことが出来ました。 その先には接続が出来ませんでしたが、リダイレクトの部分で問題があると考えているので、他のコードを確認して対応いたします。 大変助かりました。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問