[英]Laravel display validation errors and trim name
如果验证失败,我想向用户显示错误,它会以状态代码442发送回一条消息,但我想在div中显示错误消息。 如何实现? 它并不一定必须通过session('status')完成。
ImageRequest
public function rules()
{
return [
'img' => 'file|image',
];
}
public function messages()
{
return [
'img.image' => 'File type is not supported! Use files with extension .jpg/.jpeg/.gif',
];
}
控制器:
public function testing(Requests\ImageRequest $request) {
if($request->hasFile('img'));
{
$image = Input::file('img');
$filename = time() . '.' . $image->getClientOriginalExtension();
$path = public_path('images/' . $filename);
Image::make($image->getRealPath())->resize(200, 200)->save($path);
$file = $request->file('img');
return ['url' => url('images/' . $filename)];
}
if($imgErrors = $errors->first('img'));
{
return redirect('template')->with('status', 'File type is not supported');
}
}
template.blade.php:
@if (session('status'))
<div id="mydiv" class="alert alert-success">
{{ session('status') }}
</div>
JS:
function submitImage(){
var fd = new FormData($("#upload_form")[0]);
fd.append( 'img', $('#img') );
$.ajax({
url:'template',
data: fd,
dataType:'json',
async:false,
type:'post',
processData: false,
contentType: false,
success: function (data) {
$("#image").attr("src", data.url);
}
});
}
另一个问题是,我正在验证网站的名称,并且只希望允许字母和空格中的字符,但是如果有空格,我希望将单词修剪成一个,但由于某种原因却不这样做。显示错误。
NameRequest
public function rules()
{
return [
'newName' => 'required|alpha',
];
}
控制器:
public function postDB(Requests\NameRequest $request) {
$newName = trim($request->input('newName'));
$newLat = $request->input('newCode');
$websites = new Website();
$websites->name = $newName;
$websites->html = $newLat;
$websites->save();
return redirect('template')->with('status', 'Website has been saved successfully!');
}
JS:
function updateDatabase()
{
code2 = document.getElementById("content-link2").innerHTML;
var name = document.getElementById("website_name").value;
var newCode = document.getElementById('code').value = code2;
var newName = document.getElementById('name').value = name;
web_name = ($('#website_name').val());
console.log(newName);
console.log(newCode);
}
我发现向用户返回消息的最简单方法是使用Jeffrey Way构建的Flash
包
https://github.com/laracasts/flash
这可用于将错误类型的消息返回给用户。
例如,在控制器中,您将执行以下操作
public function myFunction(Request $request)
{
// Do your validation with the request
if ($valid) {
Flash::success('Congrats! Everything was fine');
} else {
Flash::error('Oops! Something went wrong');
}
return redirect()->back()->withInput();
}
可以保留一个请求的内容并将其刷新到视图以重新填充表单。 我强烈建议您阅读Laravel文档以获得更好的理解。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.