laravel icon indicating copy to clipboard operation
laravel copied to clipboard

Does not work in Lumen / Laravel

Open netdragoon opened this issue 7 years ago • 15 comments

Does not work in Lumen / Laravel ???

netdragoon avatar Aug 21 '17 00:08 netdragoon

I haven't tested this package in Lumen. I made it for Laravel. I believe we only need the Service Provider for Lumen 🤔

CristianLlanos avatar Aug 21 '17 15:08 CristianLlanos

The package has problems in Lumen, does not have the function "config_path ()" for example and gives an error also in the command line, it was the tests that I performe!!!

netdragoon avatar Aug 22 '17 17:08 netdragoon

You can follow these instructions to add config_path to Lumen: https://gist.github.com/mabasic/21d13eab12462e596120

However, now I'm stuck at php artisan code:models - I get the following error:

  [ErrorException]
  mkdir(): Invalid path

I ran the following:

$ php artisan vendor:publish --tag=reliese-models
Copied File [/vendor/reliese/laravel/config/models.php] To [/config/models.php]
Publishing complete for tag [reliese-models]!

The config/models.php file exists and is exactly the same as the one found here: vendor/reliese/laravel/config/models.php

anthonymartin avatar Aug 23 '17 17:08 anthonymartin

Try clearing the config cache php artisan config:clear.

CristianLlanos avatar Aug 23 '17 18:08 CristianLlanos

I tried that, but that command is not available in Lumen unfortunately. There's nothing in the storage/cache directory either.

anthonymartin avatar Aug 23 '17 18:08 anthonymartin

Try looking at bootstrap/cache. If you find a file named config.php, delete it.

CristianLlanos avatar Aug 23 '17 19:08 CristianLlanos

Unfortunately the package is not compatible

netdragoon avatar Aug 24 '17 01:08 netdragoon

Here's my workaround: I installed laravel and pointed it to my database. Then I installed and ran this package so I could generate the model files. I copied the model files over to my lumen project but I had to change a few things:

In the generated model files i switched use Reliese\Database\Eloquent\Model as Eloquent; to use Illuminate\Database\Eloquent\Model; and then changed the class to extend Model instead of Eloquent.

anthonymartin avatar Aug 24 '17 12:08 anthonymartin

You can do that by changing this package's config file 😄 so you don't have to do it manually. The file config/models.php has a key parent that you can modify to use Illuminate\Database\Eloquent\Model. You just have to change the config file.

CristianLlanos avatar Aug 24 '17 15:08 CristianLlanos

I had same issue. The problem is, config file not loading...

put your bootstrap/app.php file this:

$app->configure('models');

If i'm not wrong lumen does not load config files automatically. So you have to load it :)

turkeryildirim avatar Sep 10 '17 23:09 turkeryildirim

I have this problem :(

[ErrorException]
mkdir(): Invalid path

devalexandre avatar Oct 07 '17 13:10 devalexandre

Same problem:


php artisan code:models --table="ipb2_mod_newsroom_forums_exclusive"

   ErrorException  : mkdir(): Invalid path

  at /Users/approach/workspace/IALaravel/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:492
    488|         if ($force) {
    489|             return @mkdir($path, $mode, $recursive);
    490|         }
    491|
  > 492|         return mkdir($path, $mode, $recursive);
    493|     }
    494|
    495|     /**
    496|      * Move a directory.

  Exception trace:

  1   mkdir("")
      /Users/approach/workspace/IALaravel/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:492

  2   Illuminate\Filesystem\Filesystem::makeDirectory("")
      /Users/approach/workspace/IALaravel/vendor/reliese/laravel/src/Coders/Model/Factory.php:482

  Please use the argument -v to see more details.

approached avatar Mar 04 '20 10:03 approached

You've probably forgotten to publish the configurations. In case you are using Lumen, remember to register the appropriate configuration within your bootstrap/app.php file.

CristianLlanos avatar Mar 14 '20 21:03 CristianLlanos

I've had some problems with some functions that were missing (app_path & config_path). These steps fixed it for me:

  1. Add config file
user@local lumen % mkdir config
user@local lumen % cp vendor/reliese/laravel/config/models.php config
  1. Add the loading of the model config file & registration of class to bootstrap/app.php file
// ...
$app->configure('models');
if ($app->environment() == 'local') {
    $app->register(\Reliese\Coders\CodersServiceProvider::class);
}
// ...
  1. Add file to composer.json for definition of missing Laravel functions
{
    // ...
    "autoload-dev": {
        "files": [
            "laravel-functions.php"
        ]
    },
    // ... other entries
}
  1. Create a file in the root folder called laravel-functions.php
  2. Add missing Laravel functions that are used in the package to the laravel-functions.php file
<?php
if (!function_exists('app_path')){
    function app_path($path = ''){
        return base_path('app' . DIRECTORY_SEPARATOR . ltrim($path, '/'));
    }
}
if (!function_exists('config_path')){
    function config_path($path = ''){
        return base_path('config' . DIRECTORY_SEPARATOR . ltrim($path, '/'));
    }
}
  1. Regenerate composer autoloader file on cmd/terminal via composer dump-autoload

The separate file here can have any name, obviously.

tweichart avatar Jan 08 '21 15:01 tweichart

I've had some problems with some functions that were missing (app_path & config_path). These steps fixed it for me:

  1. Add config file
user@local lumen % mkdir config
user@local lumen % cp vendor/reliese/laravel/config/models.php config
  1. Add the loading of the model config file & registration of class to bootstrap/app.php file
// ...
$app->configure('models');
if ($app->environment() == 'local') {
    $app->register(\Reliese\Coders\CodersServiceProvider::class);
}
// ...
  1. Add file to composer.json for definition of missing Laravel functions
{
    // ...
    "autoload-dev": {
        "files": [
            "laravel-functions.php"
        ]
    },
    // ... other entries
}
  1. Create a file in the root folder called laravel-functions.php
  2. Add missing Laravel functions that are used in the package to the laravel-functions.php file
<?php
if (!function_exists('app_path')){
    function app_path($path = ''){
        return base_path('app' . DIRECTORY_SEPARATOR . ltrim($path, '/'));
    }
}
if (!function_exists('config_path')){
    function config_path($path = ''){
        return base_path('config' . DIRECTORY_SEPARATOR . ltrim($path, '/'));
    }
}
  1. Regenerate composer autoloader file on cmd/terminal via composer dump-autoload

The separate file here can have any name, obviously.

Nice tips! These configuration steps did the job.

Thanx @tweichart

fdbatista avatar Mar 15 '21 22:03 fdbatista