Класс ReflectionException App\User не существует

привет, у меня есть эта ошибка: класс ReflectionException App\User не существует Синтаксическая ошибка предыдущих исключений, неожиданная '{', ожидание ')' (0)

но не понимаю, где синтаксическая ошибка,

Пользователь.php

<?php

namespace App;

use Illuminate\Notifications\Notifiable;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable implements MustVerifyEmail
{
    use Notifiable;

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'username', 'nom', 'prenom', 'adresse', 'ville', 'codepostale', 'datedenaissance','email', 'password',
    ];

    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    protected $hidden = [
        'password', 'remember_token',
    ];

    /**
     * The attributes that should be cast to native types.
     *
     * @var array
     */
    protected $casts = [
        'email_verified_at' => 'datetime',
    ];

    protected static function boot()
    {
        parent::boot();
        static::created(function ($user {
            $user->profile()->create([
                'title' => 'Profil de' . $user->username
            ]);
        });
    }

    public function getRouteKeyName()
    {
        return 'username';
    }

    public function profile()
    {
        return $this->hasOne('App\Profile');
    }

    public function posts()
    {
        return $this->hasMany('App\Post')->orderBy('created_at', 'DESC');
    }
}

ПрофильКонтроллер.php

<?php

namespace App\Http\Controllers;

use App\User;
use Illuminate\Http\Request;
use Intervention\Image\Facades\Image;

class ProfileController extends Controller
{
    public function show(User $user)
    {
        return view('profile.show', compact('user'));
    }

    public function edit(User $user)
    {
        $this->authorize('update', $user->profile);
        return view('profile.edit', compact('user'));
    }

    public function update(User $user)
    {
        $this->authorize('update', $user->profile);
        $data = request()->validate([
            'title' => 'required',
            'description' => 'required',
            'image' => 'sometimes|image|max:3000'
        ]);

        if (request('image')) {
        $imagePath = request('image')->store('avatars', 'public');

        $image = Image::make(public_path("/storage/{$imagePath}"))->fit(800, 800);
        $image->save();

        auth()->user()->profile->update(array_merge($data,
            ['image' => $imagePath]
        ));
        } else {
            auth()->user()->profile->update($data);
        }

        auth()->user()->profile->update($data);

        return redirect()->route('profile.show', ['user' => $user]);
    }
}

show.blade.php

<@extends('layouts.app')

@section('content')
<div class = "container">
    <div class = "row">
        <div class = "col-4">
           <img src = "{{ $user->profile->getImage() }}" class = "rounded-circle">
        </div>

        <div class = "col-8">
            <div class = "d-flex align-items-baseline">

                <div class = "h4 mr-3 pt-2">{{ $user->username }}</div>
                <button class = "btn btn-primary">S'abonner</button>
            </div>
            <div class = "d-flex">
                <div class = "mr-3">{{ $user->posts->count() }} article(s) en vente
            </div>

            @can('update', $user->profile)
            <a href = " {{ route('profile.edit', ['username' => $user->username]) }}">Modifier Profile</a>
            @endcan

            <div class = "mt-3">
                <div class = "font-weight-bold">
                    {{ $user->profile->title }}
                </div>
                <div class = "font-weight-bold">
                    {{ $user->profile->description }}
                </div>
            </div>

        </div>
    </div>

    <div class = "row mt-5">
        @foreach ($user->posts as $post)

        <div class = "col-4">
            <a href = "{{ route('posts.show', ['post' => $post->id]) }}"> <img src = "{{ asset('storage') . '/' . $post->image }}" class = "w-100"></a>
        </div>
        @endforeach
    </div>



</div>
@endsection

Профиль.php

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Profile extends Model
{
    protected $fillable = ['title']; 

    public function user()
    {
        return $this->belongsTo('App\User');
    }

    public function getImage()
    {
        $imagePath = $this->image ?? 'avatars/default.png';

        return "/storage/" . $imagePath;
    }
}

я пытаюсь создать профиль с загрузкой изображения, кто-нибудь может помочь мне с этой ошибкой?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
0
0
488
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ваша IDE должна выдать ошибку в вашем переопределенном методе boot, поэтому измените это:

static::created(function ($user {
    $user->profile()->create([
        'title' => 'Profil de' . $user->username
    ]);
});

к этому:

static::created(function ($user) {
   $user->profile()->create([
           'title' => 'Profil de' . $user->username
   ]);
});

Примечание недостающий ) в вашем $user параметре.

спасибо мой друг, у меня есть последний вопрос... когда я пытаюсь изменить аватар профиля, он не меняется, знаешь почему?

Den Kot 14.07.2019 15:33

Я не знаю. Убедитесь, что изображение существует по пути, который вы храните в базе данных.

nakov 14.07.2019 15:36

Другие вопросы по теме