我开始使用 Laravel 8 构建一个 Web 应用程序。我注意到 Laravel 8 中的很多事情都发生了变化,包括身份验证。现在,我正在尝试使用 Jetstream 进行身份验证。
我已运行以下命令将其集成到应用程序中。
composer require laravel/jetstream
php artisan jetstream:install inertia
npm install && npm run dev
Run Code Online (Sandbox Code Playgroud)
当我去/register路线时,我可以看到包含姓名、电子邮件、密码和密码确认字段的注册表。我想要做的是我想添加另一个名为“公司”的字段,我想对其应用自定义验证规则。
我在 Jetstream 文档中发现,我可以在 JetstreamServiceProvider 类的引导方法中自定义身份验证过程,如下所示。
Fortify::authenticateUsing(function (Request $request) {
});
Run Code Online (Sandbox Code Playgroud)
但不适用于注册。如何自定义注册过程添加新字段和应用自定义验证规则?
我已经在我的 Linux Mint 20 上安装了 Laravel 8 进行个人实验,所以我对 Laravel 的新版本很陌生。我搜索了许多来源如何使用 CRUD 方法显示表,以便该表显示在网络中,其中包含来自 MySQL 数据库的数据
但是当我尝试用 CRUD 方法显示表时,它看起来像这样:
Illuminate\Database\QueryException 找不到驱动程序(SQL:select * from
list)
在本地主机:8000/home/tabel
我尝试通过修复 .env 文件、控制器文件、blade 文件和 web.php 来解决此问题,使其正确,但仍然错误。
这是我的配置文件,我对其进行了如下更改:
.env
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=people
DB_USERNAME=root
DB_PASSWORD=
Run Code Online (Sandbox Code Playgroud)
homeController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
class homeController extends Controller
{
public function home()
{
return "home";
}
public function tabel()
{
$tabelku = DB::table('list')->get();
return view('tabel', ['people' => $tabelku]);
}
}
Run Code Online (Sandbox Code Playgroud)
tabel.blade.php
<!DOCTYPE html>
<html>
<head>
<title>Table</title>
</head>
<body> …Run Code Online (Sandbox Code Playgroud) 我想创建一个新的 Laravel 8 项目,并且我按照 Windows 上的 docker 和 Sail 的文档进行操作:https ://laravel.com/docs/8.x#getting-started-on-windows
安装完所有内容后,我尝试执行命令来创建项目:
curl -s https://laravel.build/example-app | bash
Run Code Online (Sandbox Code Playgroud)
它询问我的密码。我输入它并按回车键,但什么也没发生。当我按 CTRL+C 时,我可以看到它尝试将我的密码作为命令执行。
我无法在 Laravel Tinker 中使用模型工厂。
//ItemFactory.php
class ItemFactory extends Factory
{
/**
* The name of the factory's corresponding model.
*
* @var string
*/
protected $model = Item::class;
/**
* Define the model's default state.
*
* @return array
*/
public function definition()
{
return [
'name' => $this->faker->name,
'slug' => $this->faker->slug(5, true),
'code' => $this->faker->words(5, true),
'description' => $this->faker->sentence,
'price' => $this->faker->randomNumber(1000, 10000),
'size' => $this->faker->randomElement(['Small', 'Medium', 'Large',]),
];
}
}
Run Code Online (Sandbox Code Playgroud)
内部修补匠
>>> factory(App\Item::class)->create();
Run Code Online (Sandbox Code Playgroud)
它给我一个错误:
PHP 致命错误:在第 1 行的 …
当ModelNotFoundException发生时,我想返回一个 JSON 响应而不是默认的 404 错误页面。为此,我将以下代码写入app\Exceptions\Handler.php:
public function render($request, Exception $exception)
{
if ($exception instanceof ModelNotFoundException) {
return response()->json([
'error' => 'Resource not found'
], 404);
}
return parent::render($request, $exception);
}
Run Code Online (Sandbox Code Playgroud)
但是它不起作用。当ModelNotFoundException发生时,Laravel 只显示一个空白页面。我发现,即使是在宣告一个空的渲染功能Handler.php品牌Laravel上显示空白页ModelNotFoundException。
我该如何解决这个问题,以便它可以返回 JSON/执行覆盖渲染函数中的逻辑?
我在 Laravel 中 100% 进行身份验证时遇到了一些麻烦(到目前为止,除了“home”之外的所有视图似乎都有效),并且希望从 Laravel 专家那里获得一些帮助。
composer require laravel/ui)php artisan ui bootstrap --auth)如上所述,我似乎能够访问迄今为止生成的所有身份验证视图(登录、注册和密码重置视图),但是在使用虚拟帐户注册后,在尝试访问“主页”时出现以下错误看法:
反射异常
函数()不存在
堆栈跟踪指向以下文件:“vendor/laravel/framework/src/Illuminate/Routing/RouteSignatureParameters.php:23”:
<?php
namespace Illuminate\Routing;
use Illuminate\Support\Reflector;
use Illuminate\Support\Str;
use ReflectionFunction;
use ReflectionMethod;
class RouteSignatureParameters
{
/**
* Extract the route action's signature parameters.
*
* @param array $action
* @param string|null $subClass
* @return array
*/
public static function fromAction(array $action, …Run Code Online (Sandbox Code Playgroud) 您的要求无法解析为一组可安装的软件包。
问题1
我已升级到 Laravel 8,但子目录中的自定义播种器无法正常工作。该文件位于database/seeders/tests/TestSeeder.php.
当我运行该命令时php artisan db:seed --class="TestSeeder",它返回一条错误消息:
Target class [Database\Seeders\TestSeeder] does not exist.
Run Code Online (Sandbox Code Playgroud)
播种机
<?php
namespace Database\Seeders\Tests;
class TestSeeder extends BaseSeeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
// codes
}
}
Run Code Online (Sandbox Code Playgroud)
作曲家.json
"autoload": {
"psr-4": {
"App\\": "app/",
"Database\\Factories\\": "database/factories/",
"Database\\Seeders\\": "database/seeders/",
"Database\\Seeders\\Tests\\": "database/seeders/tests/"
}
},
Run Code Online (Sandbox Code Playgroud) 我需要在 Laravel 8 中禁用我的注册路由。试过
Auth::routes([
'register' => false,
'login' => false,
]);
Run Code Online (Sandbox Code Playgroud)
但是应用程序抛出了一个错误。
RuntimeException
In order to use the Auth::routes() method, please install the laravel/ui package.
Run Code Online (Sandbox Code Playgroud)
如果有人指出需要改变的地方,将不胜感激。
谢谢
嗨,我刚刚尝试安装带有风帆的 Laravel 8,但遇到了问题
我所做的是首先从 Laravel 自己的页面运行 curl one-liner
curl -s https://laravel.build/sail-test | bash
Run Code Online (Sandbox Code Playgroud)
一旦完成我就按照它说的运行
cd sail-test && ./vendor/bin/sail up
Run Code Online (Sandbox Code Playgroud)
一切都按原样开始,我可以连接到数据库,我可以在 http://localhost 上看到该站点,但是在尝试迁移时出现以下错误:
$ sail artisan migrate:install
Illuminate\Database\QueryException
SQLSTATE[HY000] [2002] No route to host (SQL: create table `migrations` (`id` int unsigned not null auto_increment primary key, `migration` varchar(255) not null, `batch` int not null) default character set utf8mb4 collate 'utf8mb4_unicode_ci')
at vendor/laravel/framework/src/Illuminate/Database/Connection.php:678
674? // If an exception occurs when attempting to run a query, we'll format the error
675? // message …Run Code Online (Sandbox Code Playgroud)