【问题标题】:Call to undefined method App\User::messages()", exception: "BadMethodCallException调用未定义的方法 App\User::messages()”,异常:“BadMethodCallException
【发布时间】:2020-12-29 10:45:54
【问题描述】:

我正在关注这个库进行聊天,并在其中使用在线状态频道

composer require beyondcode/laravel-websockets

每当我发送消息时,控制台都会在我的聊天控制台中显示此错误

Call to undefined method App\User::messages()", exception: "BadMethodCallException

我的控制器

class ChatController extends Controller
{
    public function __construct()
    {
        $this->middleware('auth');
    }

    public function index()
    {
        return view('chats');
    }

    public function fetchMessages()
    {
        return Message::with('user')->get();
    }

    public function sendMessage(Request $request)
    {
        $message = auth()->user()->messages()->create([
            'message' => $request->message
        ]);

        broadcast(new MessageSent($message->load('user')))->toOthers();

        return ['status' => 'success'];
    }

用户.php

public function messages()
    {
        return $this->hasMany(Message::class);
    }

消息.php

class Message extends Model
{
    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $table = 'messages';

    protected $fillable = ['message'];

    public function user()
    {
        return $this->belongsTo(User::class);
    }
}

为什么我的消息没有发送给其他用户

【问题讨论】:

    标签: php laravel pusher laravel-websockets


    【解决方案1】:

    改变这一行

        $message = auth()->user()->messages()->create([
            'message' => $request->message
        ]);
    
        $user = User::find(auth()->id);
        $message = $user->messages()->create([
            'message' => $request->message
        ]);
    

    我相信 auth()->user();不同于 User::class

    【讨论】:

    • 它返回给我的错误是:“找不到类'App\Http\Controllers\User'”
    • 您必须“使用”控制器标题中的类。
    猜你喜欢
    • 1970-01-01
    • 2021-03-19
    • 2021-06-24
    • 1970-01-01
    • 1970-01-01
    • 2019-12-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-02
    相关资源
    最近更新 更多