Skip to content

Methods such as orderBy, inRandomOrder, paginate, findOrFail etc. do not appear from Model #55867

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
IgorArnaut opened this issue May 27, 2025 · 4 comments

Comments

@IgorArnaut
Copy link

Laravel Version

12.14.1

PHP Version

8.4.0

Database Driver & Version

No response

Description

I was watching this tutorial. https://www.youtube.com/playlist?list=PL4cUxeGkcC9gF5Gez17eHcDIxrpVSBuVt

I have written this Ninja model:

class Ninja extends Model
{
    protected $fillable = [
        "name",
        "skill",
        "bio",
        // 19 Handling Post Requests
        "dojo_id"
    ];
    /** @use HasFactory<\Database\Factories\NinjaFactory> */
    use HasFactory;

    // 17 Foreign Keys 2
    public function dojo()
    {
        return $this->belongsTo(Dojo::class);
    }
}

But when I type it's methods, methods orderBy, findOrFail and paginate aren't recognizable in Laravel 12. They do not get suggestions in VS Code. I've checked Model class and these methods don't exist in it. I have the official Laravel extension and PHP Intelephense installed. I assume something has changed in Laravel 12.
Image
Image

I've found a workaround to add method query after the Model name. It works for paginate, findOrFail, but it doesn't work for orderBy, inRandomOrder etc.

public function index()
{
    // route --> /ninjas/
    // 15 Pagination
    $ninjas = Ninja::with("dojo")->orderBy("created_at", "desc")->paginate(10);
    return view("ninjas.index", [
        "ninjas" => $ninjas
    ]);
}

Steps To Reproduce

  1. Create Laravel Project
  2. Create a Ninja model (with flags -mfs)
  3. Create a Ninja controller for the model
  4. Type $ninja = Ninja:: in the controller
  5. Type a method name, e.g. orderBy
  6. It does not appear in suggestions
@robert-moore96
Copy link

what happens if you ignore VS Code and actually try to run the code?

i feel like this is really just an issue with intellisense rather than that the methods actually dont exist

laravel historically hasnt played very nicely with IDEs and while there have been several plugins etc attempting to improve that that seems the most likely explanation to me here

@macropay-solutions
Copy link

Model forwards call to protected Eloquent Builder $query when the function is not found in model. You can use https://github.com/barryvdh/laravel-ide-helper for better autocomplete.
We always use Model::query()->... to have autocomplete and ctrl+click functionality.

@IgorArnaut
Copy link
Author

what happens if you ignore VS Code and actually try to run the code?

i feel like this is really just an issue with intellisense rather than that the methods actually dont exist

laravel historically hasnt played very nicely with IDEs and while there have been several plugins etc attempting to improve that that seems the most likely explanation to me here

The project has no problem when running.

@josindarov
Copy link

what happens if you ignore VS Code and actually try to run the code?
i feel like this is really just an issue with intellisense rather than that the methods actually dont exist
laravel historically hasnt played very nicely with IDEs and while there have been several plugins etc attempting to improve that that seems the most likely explanation to me here

The project has no problem when running.

Then you don't have to worry about this problem but I suggest you to use another IDE maybe phpstorm would be better option or I don't usually use VS Code and since you are getting this error maybe you need to configure it a bit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants