[英]when using php artisan migrate, change table name in migration, error occur when using tinker to save object
[英]Laravel Errors in tinker using factory->create() but not when running migration/seed commands in artisan
我能夠使用php artisan migrate:fresh --seed
從命令行成功運行遷移/工廠/播種機
但是,當我嘗試使用 tinker 手動創建類別時,出現錯誤:
<warning>PHP Warning: Array to string conversion in /Users/[my_name]/Sites/blog/vendor/laravel/framework/src/Illuminate/Support/Str.php on line 99</warning>
TypeError: Illuminate\Database\Grammar::parameterize(): Argument #1 ($values) must be of type array, string given, called in /Users/[my_name]/Sites/blog/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/Grammar.php on line 886
和
<warning>PHP Warning: Array to string conversion in /Users/[my_name]/Sites/blog/vendor/laravel/framework/src/Illuminate/Support/Str.php on line 99</warning>
=> App\Models\Category {#4529
name: [
"quaerat",
"voluptatem",
],
slug: "array",
}
工廠代碼:
<?php
namespace Database\Factories;
use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Support\Str;
class CategoryFactory extends Factory
{
/**
* Define the model's default state.
*
* @return array
*/
public function definition()
{
$name = $this->faker->words(2,true);
$slug = Str::of($name)->slug('-');
return [
'name' => ucwords($name),
'slug' => $slug
];
}
}
我有兩個問題:
謝謝,麻煩您了。
我仍然不知道為什么這兩個錯誤不同,但它很迂腐。
謝謝@Rwd。 我現在知道在 Laravel 中更改應用程序代碼后需要重新啟動 tinker。
在我想出將第二個參數添加到$this->faker->words()
之前,字符串到數組的錯誤來自之前版本的代碼——這就是它與php artisan migrate:fresh --seed
和與在php artisan tinker \App\Models\Category::factory()->create();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.