当尝试安装 laravel 10 时,我收到此错误 -
laravel/framework[v10.0.0, ..., v10.0.3] 需要composer-runtime-api ^2.2 -> 找到composer-runtime-api[2.1.0] 但它与约束不匹配。
我有 3 个 Laravel 应用程序,一个在 Laravel 6 上运行,2 个在 Laravel 8 上运行。
它们都使用来自 的 Vue 和 JWT auth tymondesigns
,我计划将它们全部升级到 Laravel 10。
但在我成功重建了我的一个应用程序以在其上安装 Laravel 10 和 Jetstream 后。我注意到与同一应用程序的旧版本相比,它使用了 x15 内存。
你可以在这里看到(我使用发条进行监控)。尽管 L10 与 Octane 一起运行,但它们都位于同一台服务器上,并且在具有 4GB 内存的 Ubuntu 中处于生产模式,
使用 Jetstream 运行 Laravel 10 的新版本- 使用 30MB 内存(即使使用 404)
我认为这是由于我自己的代码结构和应用程序设计造成的,所以我在 Laravel 8 和 Laravel 9 的裸安装之间进行了测试
composer create-project laravel/laravel:^8.0 l8
Run Code Online (Sandbox Code Playgroud)
和
composer create-project laravel/laravel:^9.0 l9
Run Code Online (Sandbox Code Playgroud)
然后将其添加到两个 api 路由上。
Route::get('/test', …
Run Code Online (Sandbox Code Playgroud) 更新到 laravel 10 后,我无法像这样执行原始查询:
$statement = 'SELECT';
foreach ($tables = collect(availableTables()) as $name => $table_name) {
if ($tables->last() == $table_name) {
$statement .= "( SELECT COUNT(*) FROM $table_name) as {$table_name}";
}
else {
$statement .= "( SELECT COUNT(*) FROM $table_name) as {$table_name}, ";
}
}
$query = DB::select(DB::raw($statement));
Run Code Online (Sandbox Code Playgroud)
这返回给我以下错误:
PDO::prepare (): Argument #1 ($query) must be of type string, Illuminate\Database|Query\ Expression given
Run Code Online (Sandbox Code Playgroud)
我应该怎么做才能解决这个问题
我有一个 Laravel 10 的 API,我正在尝试获取保存在 public/images 文件夹中的图像。
这是我在控制器中的功能:
public function show()
{
$imageUrl = asset('images/myimage.png');
return response()->json(['imageUrl' => $imageUrl]);
}
Run Code Online (Sandbox Code Playgroud)
这是我的 API:
Route::get('images', [ImageController::class, 'show']);
Route::post('images', [ImageController::class, 'store']);
Run Code Online (Sandbox Code Playgroud)
使用 POSTMAN,响应http://127.0.0.1:8000/api/images
是:
{
"imageUrl": "http://127.0.0.1:8000/images/myimage.png"
}
Run Code Online (Sandbox Code Playgroud)
如果我用 POSTMAN 或浏览器打开该 url,我就可以完美地看到图像。但是,当我尝试在前端应用程序(使用 Angular 15)中获取图像时,我收到 CORS 错误:
Access to XMLHttpRequest at 'http://127.0.0.1:8000/images/myimage.png' from origin 'http://localhost:4200' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Run Code Online (Sandbox Code Playgroud)
我的cors配置文件是这样的:
<?php
return [ …
Run Code Online (Sandbox Code Playgroud) 升级到 Laravel 10 后,我遇到了 Larastan 错误的困难时期。
下面的代码在 1 小时前还完全正常:
return $this->articleRepository->getDefaultArticles($organizationId)
->toBase()
->map(function (Article $article) {
return new Content(
$article->id,
$article->title,
$article->language,
);
})
->toArray();
Run Code Online (Sandbox Code Playgroud)
现在给我以下错误:
方法 Illuminate\Support\Collection<(int|string),Illuminate\Database\Eloquent\Model>::map() 的参数 #1 $callback 需要 callable(Illuminate\Database\Eloquent\Model, int|string): App\学院\内容,
关闭(应用程序\模型\文章):给出的应用程序\学院\内容
存储库方法有正确的提示:
/**
* @return Collection<Article>
*/
public function getDefaultArticles(OrganizationId $organizationId): Collection
{
/** @var Collection<Article> */
return Article::query()
->where('organization_id', $organizationId)
->get()
->keyBy('id')
->values();
}
Run Code Online (Sandbox Code Playgroud)
它给了我 115 个新错误,其中大多数与此类似,与map
和等收集方法相关reduce
。
快速解决方案是使用临时变量并添加类型提示:
/** @var Collection<Article> $articles */
$articles = $this->articleRepository
->getDefaultArticles($organizationId)
->toBase();
Run Code Online (Sandbox Code Playgroud)
但我不想执行 100 …
我在用Laravel Framework 10.15.0
。
我正在尝试通过以下方式加载我的 API 密钥:
\n $apiKeyOpenAI = env('OPENAI_API_KEY');\n $client = OpenAI::client($apiKeyOpenAI);\n
Run Code Online (Sandbox Code Playgroud)\n在我的.env
文件中明确定义了 api 密钥:
OPENAI_API_KEY=xx-xxxxxxxxxxxxxxxxxxxxxxx
但是,当在服务器上执行我的应用程序时,我发现该$apiKeyOpenAI
值为空。
我的文件中仍然.env
有 OPENAI_API_KEY 。我检查了这个!
我尝试清除缓存php artisan config:clear
,但仍然收到错误:
\n TypeError \n\n OpenAI::client(): Argument #1 ($apiKey) must be of type string, null given, called in /var/www/demo-website/app/Console/Commands/AdminCommand.php on line 151\n\n at vendor/openai-php/client/src/OpenAI.php:13\n 9\xe2\x96\x95 {\n 10\xe2\x96\x95 /**\n 11\xe2\x96\x95 * Creates a new Open AI Client with the given API token.\n …
Run Code Online (Sandbox Code Playgroud) 当我启动运行 docker 时,meilisearch 容器未运行并出现此错误:
2023-04-10 17:23:44 错误:您的数据库版本 (1.0.2) 与当前引擎版本 (1.1.0) 不兼容。2023-04-10 17:23:44 要在Meilisearch版本之间迁移数据,请按照我们的指南https://docs.meilisearch.com/learn/update_and_migration/updating.html
当我昨天运行我的项目时,一切都很好,但今天我无法开始运行 meilisearch。
在 Laravel 10.8框架中使用 Beyondcode/laravel-websockets包,那么它会在命令提示符中导致如下错误
您的要求无法解析为一组可安装的软件包。
我已经在composer.json中设置了所需的设置
"require": {
"php": "^8.1",
"beyondcode/laravel-websockets": "^1.14",
"guzzlehttp/guzzle": "^7.2",
"laravel/framework": "^10.8",
"laravel/sanctum": "^3.2",
"laravel/tinker": "^2.8"
}
Run Code Online (Sandbox Code Playgroud) laravel-10 ×8
laravel ×7
php ×4
angular ×1
composer-php ×1
cors ×1
docker ×1
laravel-9 ×1
meilisearch ×1
mysql ×1
phpstan ×1