标签: artisan

Laravel在生产服务器上迁移

我正在使用Laravel,作为我的部署例程的一部分,我有命令

RUN php artisan migrate

因为我正在制作中,所以我得到了错误

在生产中应用,命令取消!

修复很简单:RUN php rankbot/artisan migrate --force但我觉得这不是正确的方法吗?确保数据库架构始终是最新的最佳方法是什么?

migrate laravel artisan

13
推荐指数
1
解决办法
1万
查看次数

Laravel播种机出错.找不到课程

我是Laravel的新手,我正在教自己如何从登录表进行身份验证.我已经迁移并创建了表格.现在,我正在尝试将数据播种到登录表中,但命令提示符不断给我错误,这说明Fatal Error, class login not found我不知道我错过了什么.所以任何人都可以帮助我.这是我的代码,是的,我正在使用Laravel 4.3

<?php
class loginTableSeeder extends Seeder
{
    public function run()
    {
        DB::table('login')->delete();
        login::create(array(
            'username'  =>  'sanju',
            'password'  =>  Hash::make('sanju')
            ));
    }
}


?> 
Run Code Online (Sandbox Code Playgroud)

php sql laravel laravel-5 artisan

12
推荐指数
3
解决办法
2万
查看次数

丢弃外键的问题

我的外键与它自己的表有关.这是为了生成具有层次结构的帖子.

现在当我尝试删除数据库中的列时,它给了我这个错误:

1553 - Cannot drop index 'post_field_properties_parent_id_index': needed in a foreign key constraint
Run Code Online (Sandbox Code Playgroud)

这是代码:

public function down()
{
        Schema::table( "post_field_properties", function( $table )
        {
            $table->dropForeign('parent_id');
            $table->dropColumn('parent_id');
        } );
}
Run Code Online (Sandbox Code Playgroud)

我似乎能够做到的唯一方法是转到phpmyadmin并删除外键本身.然后放下列.

php mysql laravel artisan

12
推荐指数
3
解决办法
9011
查看次数

如何在包中安排Artisan命令?

我有一个包含Artisan命令的包.我通过我的服务提供商向Artisan注册了这些命令,如下所示:

/**
 * Register the application services.
 *
 * @return void
 */
public function register()
{
    // Register Amazon Artisan commands
    $this->commands([
        'App\Marketplace\Amazon\Console\PostProductData',
        'App\Marketplace\Amazon\Console\PostProductImages',
        'App\Marketplace\Amazon\Console\PostProductInventory',
        'App\Marketplace\Amazon\Console\PostProductPricing',
    ]);
}
Run Code Online (Sandbox Code Playgroud)

但是,这些命令需要安排为每天运行.

我知道在app/Console/Kernel.php中有一种schedule()方法可以注册命令及其频率,但是如何在我的包的服务提供者中安排命令呢?

console laravel laravel-5 artisan

12
推荐指数
2
解决办法
3367
查看次数

在Laravel容器中覆盖Singleton

我想知道是否有一种简单的方法来覆盖Laravel框架核心中的单件服务集?

例如,我正在尝试使用以下提供程序重写app:name命令服务'':

use Hexavel\Console\AppNameCommand;
use Illuminate\Console\Events\ArtisanStarting;
use Illuminate\Contracts\Events\Dispatcher;
use Illuminate\Support\ServiceProvider;

class NameCommandProvider extends ServiceProvider
{
    /**
     * Register any other events for your application.
     *
     * @param  \Illuminate\Contracts\Events\Dispatcher  $events
     * @return void
     */
    public function boot(Dispatcher $events)
    {
        $events->listen(ArtisanStarting::class, function ($event) {
            $event->artisan->resolve('command.app.name');
        }, -1);
    }

    /**
     * Register the service provider.
     *
     * @return void
     */
    public function register()
    {
        $this->app->singleton('command.app.name', function ($app) {
            return new AppNameCommand($app['composer'], $app['files']);
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

我100%一切都在工作,因为无论我把服务提供商放在什么顺序(上面或下面的ConsoleSupportServiceProvider),它仍会加载原始的AppNameCommand而不是我自定义的一个.

我已经有了一个解决方案,但如果可能的话,了解未来单身人士服务的行为会很好吗?(这是使用Laravel 5.2,如果这有任何区别.)

php laravel laravel-5 artisan laravel-5.2

12
推荐指数
2
解决办法
4522
查看次数

如何修复laravel 5.2 zizaco委托:迁移类名称验证?

我从GitHub Link跟踪了zizac/entrust安装教程并遇到了错误:

类名必须是一个有效的对象或在VAR的字符串/ WWW/HTML/laravel_test /供应商/ zizaco /委托/ SRC /命令/ MigrationCommand.php上线86

MigrationCommand.php文件网址:链接

Outut:

php artisan entrust:migration

Tables: roles, role_user, permissions, permission_role
A migration that creates 'roles', 'role_user', 'permissions', 'permission_role' tables will be created in database/migrations directory

Proceed with the migration creation? [Yes|no] (yes/no) [yes]: yes

Creating migration...
PHP Fatal error:  Class name must be a valid object or a string in /var/www/html/laravel_test/vendor/zizaco/entrust/src/commands/MigrationCommand.php on line 86
Run Code Online (Sandbox Code Playgroud)

命令:php artisan vendor:发布成功.

文件:config/entrust.php存在.

我没有改变config/auth.php文件的任何选项 - auth.php.怎么解决?

php laravel laravel-5 artisan entrust

12
推荐指数
2
解决办法
7034
查看次数

如何使用命令行清除laravel中的缓存?

Redis用来缓存Laravel 5.2中的查询/路由.

我有3个环境在同一个Web服务器上运行,即"生产","暂存"和"开发".

对于每个环境,我设置了不同的缓存prefix值,以允许我将缓存链接到不同的环境.

config/cache.php文件中我改变了行

'prefix' => 'laravel',
Run Code Online (Sandbox Code Playgroud)

'prefix' => ENV('CACHE_PREFIX', 'laravel'),
Run Code Online (Sandbox Code Playgroud)

然后在我的.env文件中,我为每个环境添加了这样的前缀

对于开发

CACHE_PREFIX="LaravelDev"
Run Code Online (Sandbox Code Playgroud)

用于分期

CACHE_PREFIX="LaravelStaging"
Run Code Online (Sandbox Code Playgroud)

用于生产

CACHE_PREFIX="LaravelProduction"
Run Code Online (Sandbox Code Playgroud)

我知道我可以像这样从命令行清除缓存

php artisan cache:clear
Run Code Online (Sandbox Code Playgroud)

但上面的代码将清除所有环境的缓存.

我只想清除"LaravelDev"的缓存而只留下"LaravelStaging"和"LaravelProduction"

如何清除特定环境的缓存?

caching laravel laravel-5 artisan laravel-5.2

12
推荐指数
2
解决办法
4万
查看次数

Laravel命令 - 只有可选参数

我有一个带有此签名的命令

order:check {--order}
Run Code Online (Sandbox Code Playgroud)

并执行此:

php artisan order:check --order 7
Run Code Online (Sandbox Code Playgroud)

由于某种原因导致此异常

  [RuntimeException]                                 
  Too many arguments, expected arguments "command".  
Run Code Online (Sandbox Code Playgroud)

为什么?我希望这个命令既可以作为php artisan order:check可选订单ID 执行,也可以使用可选订单ID执行php artisan order:check --order X

php laravel artisan laravel-5.1

12
推荐指数
2
解决办法
8442
查看次数

Laravel 5.1 - 如何在进度条上设置消息

我正在尝试与Laravel文档中提供的相同的示例:

$users = App\User::all();

$this->output->progressStart(count($users));

foreach ($users as $user) {
    print "$user->name\n";

    $this->output->progressAdvance();
}

$this->output->progressFinish();
Run Code Online (Sandbox Code Playgroud)

这很好用.我想自定义进度条(见这个),但$this->output->setMessage('xpto');给出:

PHP Fatal error:  Call to undefined method Illuminate\Console\OutputStyle::setFormat()
Run Code Online (Sandbox Code Playgroud)

php symfony laravel artisan laravel-5.1

11
推荐指数
1
解决办法
6049
查看次数

PHP工匠突然不起作用

我已经开始学习Laravel了.到目前为止,一切都运作良好.我正在按照本教程进行操作,并且我第7集陷入了困境.

问题是我不能再开始工匠了.我试图安装修补匠,我可能已经更新了工匠,所以我最终没有工匠和修补匠.我使用的是Linux Ubuntu 12.04 LTS.我已经通过命令行安装了所有内容.之后我试着跑:

php artisan --version

出现以下问题:

[ErrorException]
App\Providers\EventServiceProvider :: boot()的声明应与Illuminate\Foundation\Support\Providers\EventServiceProvider :: boot
()兼容

这是我的文件的app/Providers/EventServiceProvider.php样子:

<?php

namespace App\Providers;

use Illuminate\Contracts\Events\Dispatcher as DispatcherContract;
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;

class EventServiceProvider extends ServiceProvider
{
    /**
     * The event listener mappings for the application.
     *
     * @var array
     */
    protected $listen = [
        'App\Events\SomeEvent' => [
            'App\Listeners\EventListener',
        ],
    ];

    /**
     * Register any other events for your application.
     *
     * @param  \Illuminate\Contracts\Events\Dispatcher  $events
     * @return void
     */
    public …
Run Code Online (Sandbox Code Playgroud)

php laravel laravel-5 artisan laravel-5.2

11
推荐指数
3
解决办法
8866
查看次数