我使用工匠修补程序控制台制作大型物体。从该对象返回的方法输出并不完全适合 Artisan Tinker 控制台。我想将它保存到文件中。但是如何?我正在使用Linux。
我遇到了一个问题,即运行php artisan route:list会抛出 aSymfony\Component\HttpKernel\Exception\HttpException但它没有给我任何其他输出或在我能看到的任何地方记录它。
我已经尝试composer update并dump-autoload刷新路由缓存,调试也设置为true。我怎样才能获得更多关于HttpException被抛出的信息?
我有一个名为“import:excelfile”的 artisan 命令签名
我想在我的控制器内运行该命令。我的控制器中一切正常。但 Artisan::queue('import:excelfile') 未从控制器运行。但它可以完美地从 CLI 运行。问题出在哪里?
请看我的代码
控制器方法代码 http://pastebin.com/45dj179H
工匠代码 http://pastebin.com/zNCtQKZ0
谢谢
我正在尝试使用artisan migrate在sqlite.
我在database.php中有以下内容
'sqlite' => [
'driver' => 'sqlite',
'database' => database_path('database.sqlite'),
'prefix' => '',
],
Run Code Online (Sandbox Code Playgroud)
这是我的迁移类up功能
Schema::connection('sqlite')->create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('email')->unique();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
Run Code Online (Sandbox Code Playgroud)
注意:- 我已通过环境变量将 DB_CONNECTION 设置为 sqlite。
在命令行上我得到了nothing to migrate,并且没有创建数据库(也没有表)。
任何想法如何,我可以得到artisan migrate创建sqlite的数据库laravel 5?
我mysql通过工匠创建表格没有问题。
谢谢
我有以下路线:
Route::get('/beneficiaries/seed', function () {
echo "<p>Database seeding started...</p>";
$exitCode = Artisan::call('db:seed');
echo "<p>Database seeding completed.</p>";
});
Run Code Online (Sandbox Code Playgroud)
在我的本地环境中,当我访问“/beneficiaries/seed”时,它会为数据库设置种子。但是,如果我在生产中也这样做,则不会。我只是复制了播种机类和路由文件。
数据库浏览器:
class DatabaseSeeder extends Seeder
{
public function run()
{
$this->call(BeneficiariesTableSeeder::class);
}
}
Run Code Online (Sandbox Code Playgroud)
受益人TableSeeder:
class BeneficiariesTableSeeder extends Seeder
{
public function run()
{
//seeding logic...
}
}
Run Code Online (Sandbox Code Playgroud)
为什么我的生产 Artisan 命令没有得到执行?(我没有使用过数据库事务。即使没有它,本地数据库也会被播种,因为没有引发错误。)
我一直在尝试从 laravel 5.7.3 中的数据库获取数据,但它似乎使用了错误的数据库名称、用户名和密码,因为它返回了此错误:
SQLSTATE[HY000] [1045] Access denied for user 'homestead'@'localhost' (using password: YES) (SQL: select * from `tasks`)
Run Code Online (Sandbox Code Playgroud)
我的 .env 文件数据库部分也是根据我的需要并设置如下:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=mrdb
DB_USERNAME=root
DB_PASSWORD=
Run Code Online (Sandbox Code Playgroud)
PS:我的应用程序环境仍然是本地的。我还可以毫无问题地迁移数据并将其放入数据库artisan tinker,但不能只从数据库中获取数据。
它起作用的唯一方法是将config/database.phpmysql 部分更改为我的参数,我相信这不正确。
为什么 .env 不想在调用数据库时进行更改?
是否可以创建 Artisan 调用或命令
php artisan migrate
Run Code Online (Sandbox Code Playgroud)
喜欢Artisan::call('migrate);
因此,当连接动态更改时,我可以将丢失的表迁移到我的数据库。
Config::set('database.connections.dynamicdb', array(
'driver' => 'mysql',
'host' => '127.0.0.1',
'database' => $database_name,
'username' => 'test_user',
'password' => '123456',
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'strict' => false,
'options' => [
\PDO::ATTR_EMULATE_PREPARES => true
]
));
Artisan::call('migrate');
Run Code Online (Sandbox Code Playgroud)
或者有没有办法为其创建命令?请提出一些解决方案。
我有一个与 Docker 一起运行的应用程序,忽略了 .git 目录以减小项目的大小。
问题是每次运行 artisan 命令时都会显示此消息并存储在 Kubernetes 的日志中。而且,在某些情况下,这也是一些 kubernetes 任务无法达到 HEALTHY 状态的原因。
我有一个带有 kubernetes 的 Cronjob,它仅达到 2/3,并且显示的日志的唯一消息就是这个。
我在 Laravel 应用程序中运行测试时遇到问题。我的应用程序被拆分为单独的命名空间。Laravel App 命名空间在 app 目录中,它是 App/ 命名空间。我在 src 目录中有额外的命名空间。
我的测试用例看起来像这样:
<?php
namespace Tests\Unit;
use Illuminate\Foundation\Testing\DatabaseTransactions;
use PHPUnit\Framework\TestCase;
use SmoothCode\Sample\Domain\User\User;
use SmoothCode\Sample\Domain\User\UserRepository;
use SmoothCode\Sample\Domain\User\ValueObject\ConfirmationCode;
use SmoothCode\Sample\Shared\ValueObjects\Email;
use SmoothCode\Sample\Shared\ValueObjects\Id;
use SmoothCode\Sample\Shared\ValueObjects\Password;
use Tests\CreatesApplication;
class UserDomainTest extends TestCase
{
use CreatesApplication;
protected UserRepository $userRepository;
public function testUserCreation() {
$user = User::create(
Id::generate(),
'Jan',
'Kowalski',
new Email('test@test.com'),
'123123123',
new Password('Pass123!'),
new \DateTimeImmutable(),
ConfirmationCode::generate()
);
//
// $this->assertInstanceOf(User::class, $user);
}
protected function setUp(): void
{
parent::setUp();
}
}
Run Code Online (Sandbox Code Playgroud)
运行 vendor/bin/phpunit 后,我收到以下错误:
1) Tests\Unit\UserDomainTest::testUserCreation …Run Code Online (Sandbox Code Playgroud) 如何使用 Laravel Artisan Tinker 编写两行命令?
User::whereEmail('john.doe@home.com')
->get()
Run Code Online (Sandbox Code Playgroud)
PHP 解析错误:语法错误,第 1 行出现意外的 T_OBJECT_OPERATOR
laravel-artisan ×10
laravel ×9
php ×8
laravel-5 ×2
bash ×1
database ×1
dynamic ×1
git ×1
kubernetes ×1
laravel-5.6 ×1
mysql ×1
phpunit ×1
sqlite ×1
symfony ×1
tinker ×1