模型A有一个多态关系模型X,Y,Z.相关领域A是:
poly_id(整数外键)
poly_type(字符串App\X,App\Y或App\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)但它不起作用.
我想更改laravel auth 表的表名和一些列名。
我要采取哪些步骤或编辑哪些代码而不破坏某些内容?
我以前试过这个,注册成功了,但登录没有。每当我尝试登录时,我都会被重定向回登录页面。
laravel laravel-5 laravel-authorization laravel-authentication
我无法从 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)
用户模型 …
我有一个适用于 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 仍然会引发此错误。我还使用其他软件包,这些软件包本身使用有问题的软件包,例如“路径”或“流”,并且我无法更改它们。如何解决这个问题?
我的问题是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,所以我知道它不是文件的位置.
我的刀片中有以下内容......
<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>.我该怎么办?
我已经有了一个表名,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) 我正在使用带有令牌的 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) 最近,我们将 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 的安全解决方案吗?
我在 Laravel 5 Blade/Bootstrap 应用程序中使用了laravelcollective/html包,现在我发现不支持 Laravel 8。你能建议一些与 Laravel 8 或这个库兼容的类似的东西吗?