小编Kar*_*ill的帖子

如何最好地链接到Laravel中的多态关系

模型A有一个多态关系模型X,Y,Z.相关领域A是:

poly_id(整数外键)
poly_type(字符串App\X,App\YApp\Z)

给定一个模型实例A,我可以成功地$a->poly用来检索X,Y或Z类型的相关对象.(例如{"id":1,"name":Object X}).

在Blade模板中A,如何生成显示链接,X例如'/ x/1'?URL::route('x.show', $a-poly_>id)然而,我想到的是,我们实际上并没有可用的路径的"x"部分 - 只有poly_id,poly_type和两个对象.

我错过了什么吗?一个解决方案,比如获取poly_type字符串'App\X'并将最后一个段和小写分开以获得'x',但这看起来并不理想,并且可能定义的路径可能是其他的.

顺便说一句,在Rails中,我很确定你能做到link_to($a->poly),它会神奇地返回URL'/ x/3'.不确定Laravel是否可以做到这一点.我试过url($a->poly)但它不起作用.

php laravel laravel-routing laravel-5.2

7
推荐指数
2
解决办法
726
查看次数

更改 Laravel 身份验证表名和列名

我想更改laravel auth 表的表名和一些列名。

  • 将表名从“用户”更改为“帐户”
  • 将表列名称从“名称”更改为“用户名”
  • 将表列名称从“email”更改为“email_addr”
  • 将表列名从“updated_at”更改为“last_updated_at”

我要采取哪些步骤或编辑哪些代码而不破坏某些内容?

我以前试过这个,注册成功了,但登录没有。每当我尝试登录时,我都会被重定向回登录页面。

laravel laravel-5 laravel-authorization laravel-authentication

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

如何在 Laravel 中数据库种子 JSON 字段?

我无法从 JSON 类型的用户表中播种 user_preference 列。当我输入 .git bash 时,我在 git bash 中收到错误“数组到字符串转换” php artisan db:seed

UserSeeder.php

public function run()
{
    $faker = Faker\Factory::create();
    foreach ($this->getUsers() as $userObject) {
        $user = DB::table('users')->insertGetId([
            "first_name" => $userObject->first_name,
            "last_name" => $userObject->last_name,
            "email" => $userObject->email,
            "email_verified_at" => Carbon::now(),
            "password" => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi',
            "city" => 'Beograd',

            'user_preferences' => [
                $faker->randomElement(["house", "flat", "apartment", "room", "shop", "lot", "garage"])
            ],

            "created_at" => Carbon::now(),
            "updated_at" => Carbon::now(),
            "type" => 'personal',
        ]);
}
Run Code Online (Sandbox Code Playgroud)

用户表

Schema::table('users', function (Blueprint $table) {
    $table->json('user_preferences')->nullable()->after('city');
});
Run Code Online (Sandbox Code Playgroud)

用户模型 …

php json laravel

7
推荐指数
2
解决办法
5691
查看次数

Webpack 5 不支持 Node.js 的 polyfill

我有一个适用于 Angular 和 Node.js 的 npm 包。最近,我开始在 Angular v12 项目中使用我的包。我收到如下错误:

重大更改:webpack < 5 默认情况下包含 Node.js 核心模块的 Polyfill。这已不再是这种情况。验证您是否需要此模块并为其配置一个polyfill。

我需要这些包(例如'path'),并且我无法切换到Webpack替代方案(例如'path-browserify'),因为我需要它在nodejs上工作。

错误说:

如果你想包含一个polyfill,你需要: - 添加后备 'resolve.fallback: { "path": require.resolve("path-browserify") }' - 安装 'path-browserify'

安装“path-browserify”很简单。但是,该错误并未说明在何处添加后备。我在一些帖子中发现建议我需要将其添加到 Webpack.config.js 中。但在Angular项目中,没有这个文件;添加它没有任何效果。即使有这样的文件,它也对我没有帮助,因为我是一个 npm 包,并且我无法更改使用我的应用程序中的文件。

我可以为“path”包编写一个解决方法。但是,其他软件包引发了该错误。有些包(例如,suppertest)并不意味着可以在 webpack 中工作,并且在 Angular 上运行时我没有使用它们,但由于它们在我的代码中,所以 webpack 仍然会引发此错误。我还使用其他软件包,这些软件包本身使用有问题的软件包,例如“路径”或“流”,并且我无法更改它们。如何解决这个问题?

node.js npm polyfills webpack angular

7
推荐指数
1
解决办法
6228
查看次数

Laravel 4 HTML图像

我的问题是Laraval接受PNG图像或JPG旁边的任何其他格式.发生的事情是,当我将图像更改为JPG时,它可以找到它,但是一旦我将其更改为PNG,它就再也找不到图像了.

{{HTML::image('images/DRCSportslogo.png', 'DRC Sports Race Management', array('id' => 'DRCS-logo'));}}
Run Code Online (Sandbox Code Playgroud)

我在同一个文件目录中将这个图像格式化为PNG和JPG,所以我知道它不是文件的位置.

html php image laravel laravel-4

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

Laravel 5.5和Vue.js刀片测试

我的刀片中有以下内容......

<div>
  <contact-form></contact-form>
</div>
Run Code Online (Sandbox Code Playgroud)

我想测试以确保Vue.js组件始终在我的测试中安装...

public function testRoute()
{
    $this->visit('/');
    //stuck here
}
Run Code Online (Sandbox Code Playgroud)

基本上我很期待测试刀片有<contact-form>.我该怎么办?

php laravel vue.js vuejs2

6
推荐指数
1
解决办法
409
查看次数

检查Laravel迁移文件中是否存在列

我已经有了一个表名,table_one.现在我想再添加两列。到目前为止一切正常。但是在我的方法中,我想检查表中是否存在某列,例如dropIfExists('table').

/**
 * Run the migrations.
 *
 * @return void
 */
public function up()
{
    Schema::table('table_one', function (Blueprint $table) {
        $table->string('column_one')->nullable();
        $table->string('column_two')->nullable();
    });
}

/**
 * Reverse the migrations.
 *
 * @return void
 */
public function down()
{
    Schema::table('table_one', function (Blueprint $table) {
        // in here i want to check column_one and column_two exists or not
        $table->dropColumn('column_one');
        $table->dropColumn('column_two');
    });
}
Run Code Online (Sandbox Code Playgroud)

php sql laravel

6
推荐指数
2
解决办法
3512
查看次数

如何使用 Laravel API 身份验证返回未经授权

我正在使用带有令牌的 Laravel API 身份验证。(如此处所述:https : //laravel.com/docs/5.8/api-authentication#protecting-routes

我正在用 Postman 运行一些测试,它运行良好。当我尝试在没有有效令牌的情况下访问路由时,我看到响应是我的应用程序登录页面的(html)。如何返回Unauthorized消息而不是完整的登录页面?我是否必须创建自定义中间件?

控制器

class ExampleController extends Controller
{
    public function __construct()
    {
        $this->middleware('auth:api');
    }

    public function show(Request $request) {
        return response()->json($request->user()->name);
    }
 }
Run Code Online (Sandbox Code Playgroud)

api laravel

6
推荐指数
2
解决办法
9176
查看次数

如何在 Laravel 8 中解密 cookie

最近,我们将 Laravel 应用程序从 5.6 升级到 Laravel 8.18.1。我们在RouteServiceProvider.php中使用cookie解密。

HomeController.php

Cookie::queue("频道", "移动", 60 24 1); // 通道加密值 = eyJpdiI6IjJVTGFzZHdEOXpjMk9VTGFFYmlSbXc9PSIsInZhbHVlIjoid0djMW9zbThWOXFQTk5aVXBDNmJBdz09IiwibWFjIjoiZGM4M2U1YTY0ZjVkNTE4NjBlNzg4NTZiNzhkNjdjYzcyODU zZWU1ZWMzNjdkNGNlMTgyZGIwNmQ4NjYzOWM3MSJ9

在 Laravel 5.6 中,它直接将哈希值解密为值。

路由服务提供商.php

$encrypter = app(\Illuminate\Contracts\Encryption\Encrypter::class);
$channel_cookie = $encrypter->decrypt(Cookie::get('channel')); // result "mobile"
Run Code Online (Sandbox Code Playgroud)

在 Laravel 8.18.1 中,它将哈希值解密为带有竖线的值。

路由服务提供商.php

$encrypter = app(\Illuminate\Contracts\Encryption\Encrypter::class);
$channel_cookie = $encrypter->decrypt(Cookie::get('channel')); // result "a86aa854d5e61e2873acd30373b6725e36fba671|mobile"
$channel_cookie = explode("|",$channel_cookie)[1]; // result mobile
Run Code Online (Sandbox Code Playgroud)

这是在 Laravel 8 中解密 cookie 的安全解决方案吗?

php encryption laravel-8

6
推荐指数
1
解决办法
3644
查看次数

我可以在 Laravel 8 应用程序中使用 LaravelCollective/html 吗?

我在 Laravel 5 Blade/Bootstrap 应用程序中使用了laravelcollective/html包,现在我发现不支持 Laravel 8。你能建议一些与 Laravel 8 或这个库兼容的类似的东西吗?

php laravel laravelcollective laravel-8

6
推荐指数
1
解决办法
5806
查看次数