

エラー文にあるようにindex.blade.phpの記述に問題があると思い、ファイルを確認しましたがgetAuthIdentifierName()に関する記述が見当たらなくて、一体何が原因でエラーが起きているのかがわからず、問題の切り分けすら出来ない状態です。どなたかご回答頂けると助かります。また問題解決に向けて提示すべきファイルや環境がありましたら仰ってください。

エラー文

> Call to undefined method App\User::getAuthIdentifierName() (View:  
>  /Users/★★/projects/original/resources/views/originals/index.blade.php)

index.blade.php

[code]

    @extends('layout')
    
    @section('content')
    <div class="contents row">
        @foreach($originals as $original)
            <div class="content_post" style="background-image: url( images/{{$original->image}} );">
                @if (Auth::check() && Auth::user()->id == $original->user_id)
                    <div class="more">
                        <span><img src="{{ asset('images/anonymous-250.jpg') }}"></span>
                        <ul class="more_list">
                            <li><a href="/original/{{$original->id}}/edit">編集</a></li>
                            <li><a href="/original/{{$original->id}}/delete">削除</a></li>
                        </ul>
                    </div>
                @endif
    
                <p>{{ $original->text }}</p>
                <span class="name">
                    <a href="/users/{{ $original->user_id }}">
                    </a>
                </span>
            </div>
            {{ $originals->links() }}
        @endforeach
    </div>
    @endsection
    
[/code]

user.php(app)

[code]

    <?php
    
    namespace App;
    
    use Illuminate\Notifications\Notifiable;
    use Illuminate\Foundation\Auth\User as Authenticatable;
    use Illuminate\Database\Eloquent\Model;
    
    
    class User extends Model
    {
        use Notifiable;
    
        /**
         * The attributes that are mass assignable.
         *
         * @var array
         */
        protected $fillable = [
            'name', 'email', 'password', 'avatar',
        ];
    
        /**
         * The attributes that should be hidden for arrays.
         *
         * @var array
         */
        protected $hidden = [
            'password', 'remember_token',
        ];
    
        public function originals()
        {
            return $this->hasMany(Original::class);
        }
    }
    
[/code]

環境

[code]

    Laravel Framework 5.7.19
    PHP 7.1.19 (cli) (built: Aug 17 2018 20:10:18) ( NTS )
    macOS Mojave 10.14.2（18C54
    
[/code]


CC BY-SA 4.0
2018-12-27T09:39:49.853
51556
2019-12-17T17:19:17.843
31572
question
php laravel laravel-5
LaravelでCall to undefined method App\User::getAuthIdentifierName() で詰まっています。


class User extends Modelを  
class User extends Authenticatableにしたら、  
エラー解決しました。


CC BY-SA 4.0
2018-12-27T10:59:40.153
51560
2018-12-27T10:59:40.153
31572
51556
answer

[code]

    use Illuminate\Auth\Authenticatable;
    use Illuminate\Contracts\Auth\Authenticatable as UserContract;
    use Illuminate\Database\Eloquent\Model;
    
    class User extends Model implements UserContract
    {
        use Authenticatable;
    }
    
[/code]

が一番望ましい形ですね。 `extends` は最小限にして， `implements` \+ `use`
で行けるところはこっちでカバーするのがセオリーです。


CC BY-SA 4.0
2019-12-17T17:19:17.843
61523
2019-12-17T17:19:17.843
940
51556
answer