Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

imJohnBon's avatar

Some way to create database seeds specifically for seeding "real" data, not dummy data.

For instance, the site I'm building might have a need for several seeds that do things like create an initial "Admin" user. I would need this seed data for my local/dev environments, AND for my live environment.

I think this package attempts to do something similar: https://github.com/slampenny/SmartSeeder

7 likes
kocoten1992's avatar

Nosql support, like cassandra or mongodb....

19 likes
MightyPork's avatar

@imJohnBon I create the initial admin & other data in migrations, seems to work reasonably well. May be also better than a seeder since it happens automatically when you migrate.

oluwatimilehin's avatar

Don't introduce any huge syntax changes that will render tutorials for older versions obsolete.

4 likes
drilon's avatar

Laravel must improve the performances ! In every benchmark I've seen until today, we are on the bottom of the list... Maybe Eloquent too ?

17 likes
arekpietrzyk's avatar

@TaylorOtwell

  1. Cashier that can be easly replaced with other payment services than Stripe - which include local subscription definition + callbacks to fill with own requests/responses to/from other payment providers :)

    It will give a chance to start with Spark for those who are not eligible to use Stripe (country based limitation).

  2. url validator that will accept domains full addresses with protocol prefix

  3. Models directory in app space

10 likes
crynobone's avatar

A simple way to register new notification channel (would be nice if it's just by typing the class name, instead of having to use ChannelManager::extend().

public function via() 
{
    return ['mail', 'nexmo', PushNotification::class];
}
beerbuddha's avatar

RabbitMQ as part of the framework queue driver

10 likes
Rjs37's avatar

@imJohnBon I use the existing seeder for my live environment. Don't see why it can't be? For example I use it to seed countries into my database. I just run it on the server I've installed the site.

Though I do like the idea of being able to version seeds. Would help when adding new permissions for the spatie package mentioned on the last page :).

devinfd's avatar

A more concise presentation of complicated data in views. For example it's easy enough to do {{ $foo->bar}} but if you want to present something that relies on other factors you might end up doing if statements or other logic just to render the text. I'm looking for something more than $model->getFooAttribute. This is great for getting simple things but unfortunately it's also used when/wher ever that foo attribute is accessed, when reality I only want it mutated in the view.

Mevrael's avatar

A bit of Laravel localization improvements and ability to use multiple locales out of the box. This has been discussed for too long and upvoted many times in laravel/internals. Manual solutions requires extending too much core classes.

Table/list of all binding names used in framework. It took me days to find how to extend UrlGenerator, for example:

        $this->app->bind('url', function ($app) {
            return new UrlGenerator($app['router']->getRoutes(), $app['request']);
        });

In this example only 'url' should be specified, trying class name, namespace and everything else, didn't worked.

Laravel needs to move into enterprise level. It is hard to use Laravel for huge projects. Different folders for migrations, seeders. For example php artisan migrate v2.0

The one thing I realy liked in Symfony - base classes. I have in each laravel app a app/Core folder where I have Application, Request, Grammars and many many other classes extended. Giving an ability to extend Laravel core in such easy way would be just amazing.

spatial data type support in grammars, at least POINT column;

FULLTEXT indexes;

Easy way to extend sql grammars, adding custom columns and model castings.

I have Uploadable trait which automatically detects file uploads in requests and handles file uploading (generating random hash to make sure new file version will be available in browser) for models whenever model is created, updated or deleted (also files deleted). Would like to see such component in Laravel core with file storage support out of the box. Just change 1 config line and all files are now uploaded/stored in different server or cloud.

Cleaner email API with templates and configs without huge callbacks. Just something Mail::sendRegistrationConfirmationEmail($user) or Mail::to($user->email)->subject($title)->send();

9 likes
wells's avatar

OAuth 2 integration for API development.

22 likes
tristanbailey's avatar

Some of the nice things for rapid admin building from Django would be nice. Models make screens in admin and then layer on alterations to default base crud. Saves building admin list screens but spend time adding extra filters or sort options in few lines.

3 likes
davorminchorov's avatar

An Artisan command that generates migrations from already existing database structure, built outside Laravel / by hand in MySQL workbench.

php artisan generate:migrations

24 likes
tomschlick's avatar

Allow scheduler to run on multi-machine setups but still only execute once per cycle as described here https://github.com/laravel/internals/issues/69

This way we would have redundancy if one machine is taken down or you run on something like aws auto scaling groups. It should be as easy as saving the lock file to the cache driver instead of a flat file. I just haven't had time over the past few weeks to submit the PR myself! :)

7 likes
EmilMoe's avatar

Laravel locales: when I generate input errors in Danish, it is not flexible how I can show the input box name, I want to be able to translate the name of the inputs somehow. I want to keep them in English but show them in Danish for the users

2 likes
weareframework's avatar

Coverage reports for testing would be nice. Output can be html generation or on command line for test coverage.

3 likes
phanan's avatar

Native JWT, instead of relying on tymondesigns/jwt-auth, which is often lagging behind and can be troublesome to set up.

17 likes
Snapey's avatar

A 'laravel way' of passing collections through views to be used by javascript, eg blade function

@jsonarray ($items);
7 likes
alfonsobries's avatar

Blade filters / formatters

For example:

{{ $some_number | 'money' }}
{{ $some_date | 'date|d/m/Y' }}
{{ $some_string | 'uppercase' }}
48 likes
hero21's avatar

Artisan command to generate ACL. Pre-install popular and most used packages.

1 like
lara30453's avatar

I would like to see better authentication methods out of the box in Lumen like JWT or OAuth2.0.

1 like
rene's avatar

ability to make cashier more extensible with other payment providers like www.mollie.com

gocanto's avatar

I would like to have something like this if possible:

@includeFrom ('users.partials.profile',  [
    'details', 
    'settings', 
    'preferences'
]) // or give the path where to look for views

Instead something like this:

@include ('users.partials.profile.details')
@include ('users.partials.profile.settings')
@include ('users.partials.profile.preferences')
4 likes
alfonsobries's avatar

More powerful url helpers, specifically a nice way to manage the url GET params.

Something like this:

  1. Let's say you have a route named "my_route" that returns this URL: http://myapp.dev/my-route/

  2. Maybe you add some filters, change the page, etc, and the current url is this: http://myapp.dev/my-route/?viewas=table&page=2&group=admins

The problem its that Its very difficult to manage the parameters when you navigate trough the site, so

I thinks that a special helper to manage the GET parameter is missing, i'm thinking in something like this:

route_with_params('my-route'); 
//Returns ==> http://myapp.dev/my-route?viewas=table&page=2&group=admins  (The same URL)
route_with_params('my-route', ['page' => null]);
// Returns ==> http://myapp.dev/my-route?viewas=table&group=admins  (Remove the page param)
route_with_params('my-route', ['group' => 'manager']);
// Returns ==> http://myapp.dev/my-route?viewas=table&page=2&group=managers   (Override the group param)
route_with_params('my-route', ['group' => 'manager', 'viewas' => null]);
//Returns  ==> http://myapp.dev?page=2&group=managers    (Remove the viewas param and override the group) 

Another way (like zend framework do add a "reset" param)

route('my-route', $params = [], $reset = false); 
//Returns ==> http://myapp.dev/my-route?viewas=table&page=2&group=admins  (The same URL)
route('my-route', $params = [], $reset = true); 
// Returns ==> http://myapp.dev/my-route (Reset all params)

Im sure one or more have experienced this trouble.

9 likes
Omranic's avatar
  • Nested Sets
  • Multi-lingual support
  • Better Eloquent Performance
11 likes

Please or to participate in this conversation.