我有一个表单,我有一个视频网址的输入字段数组,现在当我验证表单,如果我有多个无效字段与视频网址,我得到相同的消息为每个无效字段,因为我做了我自己的自定义消息.我不希望每个输入字段都有相同的错误消息,我不希望数组的默认Laravel错误消息,其中字段的名称显示错误消息,而不是,我想有错误消息使用值,在这种情况下从用户写入url.怎么做?
这是我的请求文件,包含消息和规则:
public function messages(){
$messages = [
'title.required' => 'Du må ha tittel.',
'type.required' => 'Du må velge artikkeltype.',
'category.required' => 'Du må velge kategori.',
'summary.required' => 'Du må ha inngress.',
'text.required' => 'Du må ha artikkeltekst.',
'active_url' => 'Du må ha gyldig url.',
];
}
public function rules(){
$rules = [
'external_media.*' => 'active_url',
'title' => 'required',
'type' => 'required',
'category' => 'required',
'summary' => 'required',
'text' => 'required',
//'image' => 'required|image|max:20000',
];
return $rules;
}
Run Code Online (Sandbox Code Playgroud)
更新了代码以使问题更加清晰
当我有我的请求文件时: …
我有一个生成 SQL 字符串的函数。查询工作正常,我获取了我需要的数据。我遇到的问题是,我正在将查询构建为字符串,该字符串容易受到 SQL 注入攻击。我uuids在下面的示例中作为参数传递,但不传递元组。对于元组,我只是构建一个字符串输入。它看起来像这样:
private fun generateSQLForTuples(tuplesList: List<List<String>>):String =
"""
select id, subcustomer
from customer
where uuid = any(:uuids)
union
select id, subcustomer
from customer
where (customer_id, subcustomer) in (${toJdbcTuples(tuplesList)})
""".trimIndent()
Run Code Online (Sandbox Code Playgroud)
因为,我没有找到正确的元组 jdbc 数据类型,所以我生成一个字符串并直接使用toJdbcTuples(tuplesList)函数传递它。现在,由于我希望获得某种针对 SQL 注入攻击的保护,因此我想到首先为元组创建一个占位符列表,如下所示:
((?, ?), (?, ?))
Run Code Online (Sandbox Code Playgroud)
然后我会创建一个列表来匹配占位符。这是我创建占位符和元组的代码:
val placeholdersForTuples = customers.map { listOf("?", "?") }
val tuples = customers.map { listOf(it["customerId"] as String, it["subCustomer"] as String) }
val existingCustomers = fetchRows(
ctx, generateSQLForTuples(placeholdersForTuples), mapOf("uuids" to customers.map { it["uuid"] })
)
Run Code Online (Sandbox Code Playgroud)
但是,我不确定应该如何将包含实际元组值的列表作为参数传递到带有占位符的准备好的语句中?我已经将一个命名参数传递 …
我有一个Laravel 5.3应用程序和一个更新表单,我发送用户配置文件值.其中一个是用户图像,我正在为它创建一个隐藏的输入字段,所以如果用户没有上传任何新图像,我仍然可以看到他有隐藏字段和旧图像值.
<input type="hidden" class="form-control" name="old_image" value="{{ $player->image_filename }}" id="oldImage">
Run Code Online (Sandbox Code Playgroud)
如果他删除图像,隐藏的输入值将变为空.
document.getElementById('oldImage').value = '';
Run Code Online (Sandbox Code Playgroud)
这就是我想到的更新用户图像的方法.但我不知道如何为该表单设置验证规则.与此类似的东西:
public function rules()
{
return [
'first_name' => 'required|max:50',
'last_name' => 'required|max:50',
'birthday' => 'required',
'image' => required if old_image empty
];
}
Run Code Online (Sandbox Code Playgroud)
我已尝试过,但'image' => 'required_without:old_image',也'image' => 'required_if:old_image, null',没有显示任何错误信息丢失图像.我正在显示如下错误消息:
更新 IntelliJ 并从项目的存储库中提取最新代码后,我不断收到诸如Kotlin: Unresolved reference、Kotlin: Too many arguments for public fun等构建错误,而这是我以前没有遇到过的。
我尝试运行Reload All Gradle ProjectsIntelliJ,但随后不断收到以下错误:
[daemon] Invalid maximum heap size: -Xmx1g -Xshare:off
Run Code Online (Sandbox Code Playgroud)
在过去的几个月里,我能够很好地构建项目,但是现在,当我从远程存储库中提取最新版本时,当我尝试时,我不断收到该错误Reload All Gradle Projects。这就是我的gradle.properties文件的样子:
org.gradle.caching=true
org.gradle.parallel=true
org.gradle.jvmargs=-Xms512M -Xmx2g -XX:MaxMetaspaceSize=1g -Xshare:off -Dkotlin.daemon.jvm.options="-Xmx1g -Xshare:off"
org.gradle.logging.level=lifecycle
org.gradle.console=auto
Run Code Online (Sandbox Code Playgroud)
由于它是我们 git 存储库的一部分,我担心在那里进行任何更改。我读到,使用 32 位 JDK 而不是 64 位可能会出现问题,但我有正确的版本:
openjdk version "17.0.3" 2022-04-19
OpenJDK Runtime Environment Temurin-17.0.3+7 (build 17.0.3+7)
OpenJDK 64-Bit Server VM Temurin-17.0.3+7 (build 17.0.3+7, mixed mode, sharing)
Run Code Online (Sandbox Code Playgroud)
即使我注释掉文件org.gradle.jvmargs中的gradle.properties内容,我也会收到构建错误: …
我第一次使用带有laravel的pjax来加快页面加载速度,所以我对它没有多少了解.我正在使用这个包.我已经设置它似乎工作,只有一些页面,我有一些内容的JavaScript,我有一些问题.
这是我的main.js文件:
$(document).ready(function() {
if ($.support.pjax) {
$.pjax.defaults.timeout = 5000;
}
$(document).pjax('.link', "#pjax");
//add class active to tab based on url
var loc = window.location.pathname;
switch (window.location.pathname) {
case '/admin/statistics':
$('#statistics').addClass('is-active bulletpoint');
break;
case '/admin/articles':
$('#articles').addClass('is-active bulletpoint');
$('.tabs').append('<li class="tabs-title search"><i class="ion-ios-search"></i><input id="search-table" type="text" class="search-input" placeholder="Søk"></li>');
break;
case '/admin/users':
$('#users').addClass('is-active bulletpoint');
$('.tabs').append('<li class="tabs-title search"><i class="ion-ios-search"></i><input type="text" class="search-input" id="search-table" placeholder="Søk"></li>');
break;
case '/admin/articles/create':
$('#create').addClass('is-active bulletpoint');
break;
}
var table = $('#table').DataTable({
"paging": false,
"ordering": false,
"info": false,
"dom": 'lrtip',
"language": …Run Code Online (Sandbox Code Playgroud) 在我的页面上,我有一个用于图像的离子滑动盒.由于在我的应用中用户可以嵌入视频,我还应该将带有视频的iframe添加到同一个滑块.这就是我的代码现在的样子:
这是我的HTML:
<ion-slide-box ng-if="slider.length > 1">
<ion-slide ng-repeat="item in slider">
<img ng-if="item.image" ng-src="{{ fileServer }}/imagecache/cover/{{ item.image }}" class="cover">
<iframe ng-if="item.video" src="{{ item.video | safeUrl }}"></iframe>
</ion-slide>
</ion-slide-box>
Run Code Online (Sandbox Code Playgroud)
这只适用于图像,但是当我有视频时,我不能滑动它们,如果它们占用100%宽度,我已经设置在我的CSS中,我只能滑动它们,如果它们宽度小于那个,如果我仅在iframe未占用滑块空间的部分上滑动它们.由于我需要让iframe占据100%的宽度,我想知道如何让它工作?
当我登录我的应用程序,并在我输入时立即返回,然后尝试注销,我从标题中得到错误,我该如何解决?
我有一个用户可以上传图像的组件,我还想添加一个删除图像的功能.我添加了一个删除当前图像的按钮,但问题是表单也提交了,我想避免这种情况.我只需删除当前图像(如果存在).这是脚本:
<template>
<div class="Image-input">
<div class="Image-input__input-wrapper">
<h2>+</h2>
<input @change="previewThumbnail" class="Image-input__input" name="image" type="file">
</div>
<div class="Image-input__image-wrapper">
<i v-show="! imageSrc" class="icon fa fa-picture-o"></i>
<img v-show="imageSrc" class="Image-input__image" :src="imageSrc">
<button v-show="imageSrc" @click="removeImage">Remove image</button>
</div>
</div>
</template>
<script>
export default {
props: ['imageSrc'],
methods: {
previewThumbnail: function(event) {
var input = event.target;
if (input.files && input.files[0]) {
var reader = new FileReader();
var vm = this;
reader.onload = function(e) {
vm.imageSrc = e.target.result;
}
reader.readAsDataURL(input.files[0]);
}
},
removeImage: function removeImage(e) {
this.imageSrc = '';
} …Run Code Online (Sandbox Code Playgroud) 我在我的项目中使用了这个插件,并试图删除选择上 focuse 的蓝色边框。我尝试将大纲设置为无,如下所示:
*:focus {
outline: 0!important;
}
Run Code Online (Sandbox Code Playgroud)
我也尝试过outline:none,但它不起作用,如何从中删除轮廓?
我使用的 html 与插件文档中建议的相同:
<select name="position" value="{{ $player->position or old('position') }}" class="selectpicker show-menu-arrow form-control" multiple data-max-options="3" data-icon-base="ion" data-tick-icon="ion-checkmark-round" title="Choose positions (max 3)" required>
@foreach($positions as $key => $value)
<option data-subtext="{{ $key }}">{{ $value }}</option>
@endforeach
</select>
Run Code Online (Sandbox Code Playgroud) 我有一个 laravel 项目,它在本地机器上运行良好,我在 homestead 上设置了它,但是当我在 namecheap 上将项目上传到生产服务器时,没有任何链接或路线工作,我只得到索引页打开时没有样式,如果我点击任何链接,我会收到 500 错误。我已按照此处建议的步骤操作:
所以,我的 Laravel 项目目录与 public_html 处于同一级别,以及我的 Laravel 项目的公共目录。它们都在同一目录级别。我改变了index.php文件中的路径:
require __DIR__.'/mariva/bootstrap/autoload.php';
$app = require_once __DIR__.'/mariva/bootstrap/app.php';
Run Code Online (Sandbox Code Playgroud)
然后,我更改了 laravel 项目目录中的 server.php:
require_once __DIR__.'../public_html/index.php';
Run Code Online (Sandbox Code Playgroud)
权限显然是由 namecheap 客户服务设置的,但是我的所有 css 和 js 文件以及单击页面上的某些 html 链接时仍然出现 404 错误。
在视图文件中,我像这样调用我的 css 文件:
<!-- CSS Files -->
<link href="{{ asset('css/material-kit/css/bootstrap.min.css') }}" rel="stylesheet" />
<link href="{{ asset('css/material-kit/css/material-kit.css') }}" rel="stylesheet"/>
<link href="{{ asset('css/landing-page.css') }}" rel="stylesheet"/>
Run Code Online (Sandbox Code Playgroud)
和js文件一样:
<!-- Core JS Files -->
<script src="{{ asset('js/landing-page/jquery.min.js') }}" type="text/javascript"></script>
<script src="{{ asset('js/landing-page/bootstrap.min.js') …Run Code Online (Sandbox Code Playgroud) javascript ×3
laravel ×3
php ×3
kotlin ×2
ajax ×1
css ×1
gradle ×1
html ×1
iframe ×1
java ×1
laravel-5.2 ×1
laravel-5.3 ×1
pjax ×1
postgresql ×1
server ×1
sql ×1
validation ×1
vue.js ×1