Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
сайт лежит на впсе, установлена веста.
пробую перевести сайт на httpS, но получают 403 ошибку (https://pravoedelo.ua)
права и юзер установлены верно.
в чём может быть трабл? какие-то доп. настройки для ларки нужны? /public/.htaccess выглядит так:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>
на странице http://pravoedelo.ua/news-1 можно в живую это видеть.
Всё нормально, крыша потекла :]
обнаружил, что без очистки кэша съезжает хедер на сайте.
@include('layouts.header')
содержимое:
<html lang="ru">
<head>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-108242687-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-108242687-1');
</script>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">
<title>Юридическая компания Правое Дело</title>
<link rel="shortcut icon" href="fav.ico" type="image/png">
<link href="css/bootstrap.min.css" rel="stylesheet">
<link href="css/style.css" rel="stylesheet">
<link href="css/animate.css" rel="stylesheet" >
<link href="https://fonts.googleapis.com/css?family=Roboto:100,100i,300,300i,400,400i,500,500i,700,700i,900,900i&subset=cyrillic-ext" rel="stylesheet">
</head>
<body <?php if(strripos($_SERVER['REQUEST_URI'], 'services-open') != FALSE) echo "class='service-open'>"; elseif($_SERVER['REQUEST_URI'] == '/') echo "class='main'>";
else echo ">"; ?>
<nav id="header" class="navbar navbar">
<div id="header-container" class="container navbar-container">
<a class="navbar-brand" href="/"></a>
<div class="navbar-header">
<a class="navbar-brand_mob" href="/">ПРАВОЕ ДЕЛО</a>
<div class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-controls="navbar">
<span class="top"></span>
<span class="middle"></span>
<span class="bottom"></span>
</div>
</div>
<div id="navbar" class="collapse navbar-collapse" >
<div class="original">
<ul class="nav navbar-nav ">
<li class="active"><a href="/services">Услуги</a></li>
<li><a href="/company">Компания</a></li>
<li><a href="/reviews">СМИ о нас</a></li>
<li><a href="/news">Новости</a></li>
<li><a href="/life">Жизнь</a></li>
<li><a href="/contact">Контакты</a></li>
</ul>
</div>
</div>
</div>
</nav>
<div class="cloned">
<div class="menu-fixed">
<a class="navbar-brand" href="/">ПРАВОЕ ДЕЛО</a>
<ul class="nav navbar-nav">
<li class="active"><a href="/services">Услуги</a></li>
<li><a href="/company">Компания</a></li>
<li><a href="/reviews">СМИ о нас</a></li>
<li><a href="/news">Новости</a></li>
<li><a href="/life">Жизнь</a></li>
<li><a href="/contact">Контакты</a></li>
</ul>
</div>
</div>
становится вот так:
должно быть (с очисткой кэша):
вот сюда вьюха news.blade.php:
@include('layouts.header')
<div class="scr-bot-ov"></div>
<div class="container animate-content news_open">
<div class="row news wow fadeIn" data-wow-duration="2.0s">
<div class="col-sm-12">
<div class="zag">Новости / Блоги / Кейсы</div>
<div class="title">Полезные статьи по юриспруденции - <br />Блог юристов компании</div>
<div class="category">
<ul>
<li id='news' class="active">Все новости</li>
<li id='blog' >Блоги</li>
<li id='case' >Кейсы</li>
</ul>
</div>
</div>
</div>
<div id='anque'>
@foreach ($newsf as $news)
@if ($news->id == $header)
<a href="/news-{{$news->id}}" class="col-sm-12 an-block-link">
<div class="row news_main_pre_text">
<div class="col-sm-10 centered wow fadeIn" data-wow-duration="2.0s">
<span class="date">
@if ($news->type == 'Блог')
Блог юристов компании - {{ date('d.m.Y', strtotime($news->created_at)) }}
@elseif($news->type == 'Кейсы')
Кейсы юристов компании - {{ date('d.m.Y', strtotime($news->created_at)) }}
@else Новости юристов компании - {{ date('d.m.Y', strtotime($news->created_at)) }}
@endif
</span>
<span class="article_title">{{$news->title}}</span>
</div>
</div>
<div class="row news_main_image">
<div class="col-sm-10 centered wow fadeIn" data-wow-duration="2.0s">
<div class="wow img-slide animate-start">
<div class="bg"></div>
<img src="{{asset('/attachmentFiles/'.$news->header)}}">
</div>
</div>
</div>
<div class="row news_main_txt">
<div class="col-sm-10 centered wow fadeIn" data-wow-duration="2.0s">
<p>{{$news->smallcontent}}</p>
<span class="button" >Читать дальше</span>
</div>
</div>
</a>
@elseif ($news->id%2 !=0)
<a href="/news-{{$news->id}}" class="col-sm-12 blog vertical-align an-block-link">
<div class="col-sm-5 img wow fadeIn" data-wow-duration="2.0s">
<div class="wow img-slide animate-start">
<div class="bg"></div>
<img src="{{asset('/attachmentFiles/'.$news->img)}}">
</div>
</div>
<div class="col-sm-5 col-sm-offset-2 text wow fadeIn" data-wow-duration="2.0s">
<div class="an-line-zag">
<div class="animate-line"></div>
<div class="zag">@if ($news->type == 'Блог')
Блог юристов компании - {{ date('d.m.Y', strtotime($news->created_at)) }}
@elseif($news->type == 'Кейсы')
Кейсы юристов компании - {{ date('d.m.Y', strtotime($news->created_at)) }}
@else Новости юристов компании - {{ date('d.m.Y', strtotime($news->created_at)) }}
@endif
</div>
</div>
<div class="title">{{$news->title}}</div>
</div>
</a>
@else
<a href="/news-{{$news->id}}" class="col-sm-12 blog vertical-align an-block-link">
<div class="col-sm-5 col-md-5 col-sm-push-7 img wow fadeIn" data-wow-duration="2.0s">
<div class="wow img-slide animate-start">
<div class="bg"></div>
<img src="{{asset('/attachmentFiles/'.$news->img)}}">
</div>
</div>
<div class="col-sm-5 col-md-5 col-sm-pull-5 col-sm-offset-0 text wow fadeIn" data-wow-duration="2.0s">
<div class="an-line-zag">
<div class="animate-line"></div>
<div class="zag">@if ($news->type == 'Блог')
Блог юристов компании - {{ date('d.m.Y', strtotime($news->created_at)) }}
@elseif($news->type == 'Кейсы')
Кейсы юристов компании - {{ date('d.m.Y', strtotime($news->created_at)) }}
@else Новости юристов компании - {{ date('d.m.Y', strtotime($news->created_at)) }}
@endif</div>
</div>
<div class="title">{{$news->title}}</div>
</div>
</a>
@endif
@endforeach
<div class="col-sm-12 pag">
<ul>
{{$newsf->links()}}
</ul>
</div>
</div>
</div>
<div class="row foot">
<a href="/life" class="col-sm-12 menu">
<div class="vcentre">
<div class="more">далее</div>
<div class="title">Жизнь</div>
<div class="arrow_down"></div>
</div>
</a>
</div>
@include('layouts.footer')
<script src="js/jquery.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/scripts.js"></script>
<script src="js/wow.js"></script>
</body></html>
вот js:
$('.category ul li').on('click', function(e){
var type = e.target.id;
$.ajax({
data: type,
method: 'GET',
url: '/news?type=' + type,
success: function(txt){
console.log(txt);
alert('success!');
$('#anque').html(txt);
}
});
});
то есть при выполнении аякса, мы получаем нужную инфу с базы, пихаем её во вьюху tags (ниже) и рез-ат возвращаем скрипту, который заменяет содержимое блока div#anque (в котором весь контент + ссылки пагинации, как можно будет увидеть ниже) на рез-ат.
tags.blade.php:
@foreach ($newsf as $news)
@if ($news->id == $header)
<a href="/news-{{$news->id}}" class="col-sm-12 an-block-link">
<div class="row news_main_pre_text">
<div class="col-sm-10 centered wow fadeIn" data-wow-duration="2.0s">
<span class="date">
@if ($news->type == 'Блог')
Блог юристов компании - {{ date('d.m.Y', strtotime($news->created_at)) }}
@elseif($news->type == 'Кейсы')
Кейсы юристов компании - {{ date('d.m.Y', strtotime($news->created_at)) }}
@else Новости юристов компании - {{ date('d.m.Y', strtotime($news->created_at)) }}
@endif
</span>
<span class="article_title">{{$news->title}}</span>
</div>
</div>
<div class="row news_main_image">
<div class="col-sm-10 centered wow fadeIn" data-wow-duration="2.0s">
<div class="wow img-slide animate-start">
<div class="bg"></div>
<img src="{{asset('/attachmentFiles/'.$news->header)}}">
</div>
</div>
</div>
<div class="row news_main_txt">
<div class="col-sm-10 centered wow fadeIn" data-wow-duration="2.0s">
<p>{{$news->smallcontent}}</p>
<span class="button" >Читать дальше</span>
</div>
</div>
</a>
@elseif ($news->id%2 !=0)
<a href="/news-{{$news->id}}" class="col-sm-12 blog vertical-align an-block-link">
<div class="col-sm-5 img wow fadeIn" data-wow-duration="2.0s">
<div class="wow img-slide animate-start">
<div class="bg"></div>
<img src="{{asset('/attachmentFiles/'.$news->img)}}">
</div>
</div>
<div class="col-sm-5 col-sm-offset-2 text wow fadeIn" data-wow-duration="2.0s">
<div class="an-line-zag">
<div class="animate-line"></div>
<div class="zag">@if ($news->type == 'Блог')
Блог юристов компании - {{ date('d.m.Y', strtotime($news->created_at)) }}
@elseif($news->type == 'Кейсы')
Кейсы юристов компании - {{ date('d.m.Y', strtotime($news->created_at)) }}
@else Новости юристов компании - {{ date('d.m.Y', strtotime($news->created_at)) }}
@endif
</div>
</div>
<div class="title">{{$news->title}}</div>
</div>
</a>
@else
<a href="/news-{{$news->id}}" class="col-sm-12 blog vertical-align an-block-link">
<div class="col-sm-5 col-md-5 col-sm-push-7 img wow fadeIn" data-wow-duration="2.0s">
<div class="wow img-slide animate-start">
<div class="bg"></div>
<img src="{{asset('/attachmentFiles/'.$news->img)}}">
</div>
</div>
<div class="col-sm-5 col-md-5 col-sm-pull-5 col-sm-offset-0 text wow fadeIn" data-wow-duration="2.0s">
<div class="an-line-zag">
<div class="animate-line"></div>
<div class="zag">@if ($news->type == 'Блог')
Блог юристов компании - {{ date('d.m.Y', strtotime($news->created_at)) }}
@elseif($news->type == 'Кейсы')
Кейсы юристов компании - {{ date('d.m.Y', strtotime($news->created_at)) }}
@else Новости юристов компании - {{ date('d.m.Y', strtotime($news->created_at)) }}
@endif</div>
</div>
<div class="title">{{$news->title}}</div>
</div>
</a>
@endif
@endforeach
<div class="col-sm-12 pag">
<ul>
{{$newsf->links()}}
</ul>
</div>
роут "/news" или аяксовый вариант "/news?type={type} вызывает следующий экшн:
public function getNewsPage(Request $request)
{
if(isset($request->type)){
switch($request->type){
case 'news': $type = 'Новости';
break;
case 'blog': $type = 'Блог';
break;
case 'case': $type = 'Кейсы';
break;
}
$newsf = News::where('type', $type)->paginate(5);
$header = News::where('type', $type)->take(1)->get();
foreach($header as $header)
$head = $header->id;
return view('tags', ['newsf' => $newsf, 'header' => $head]);
}else{
$newsf = News::paginate(5);
$header = News::take(1)->get();
foreach($header as $header)
$head = $header->id;
return view('news', ['newsf' => $newsf, 'header' => $head]);
}
}
данные получаются в обоих случаях, после чего передаются во вьюху 'news' (или 'tags' - тоже самое, только без "лишнего"), внизу которых есть $news->links() , для выводя кнопок пагинации ("далее", "назад" и номера страниц).
теперь вопрос.
когда я попадаю на страницу /news через меню на сайте, то всё как надо.
но если я клацаю НА странице /news на выбор тэга для вывода, то выполняется ajax-запрос /news?type , который заменяет контент роута /news на контент роута /news?type= . окей, всё тоже работает отлично. а вот кнопки пагинации всё так же водят по ВСЕМ новостям, без учета поля type.
на локалке есть миграции, создающие 8 таблиц в БД.
на прод залил эти миграции, но не знаю, как их выполнить, ибо там сейчас 4 из 8 (добавил же новые) таблиц, и они наполнены данными.
не хочется делаться migrate:refresh, ибо потеряю данные.
данные - массивные, статьи с изображениями, ссылками, html-разметкой и т.п.
1. сделал без ретурна
2. и что там увидеть? выше скрин вкладке network
дак я ж в коде и сделал)
во вкладке нетворкс ничего интересного нету:
хз.
сделал в контроллере : return dd($request);
в аяксе добавил : success:function(dd){
console.log('log: ' + dd);
...
получил во вкладке console нечитаемое
думал так и сделать, но.. а как? файлы get-ом не передаются по определению, только post-ом.
но чтобы что-то вывести на экран, мне нужен get. что ддшить-то? ))
вот товарищ как-то решал с form.serialize - в каком смысле "не умеет"?
https://toster.ru/q/189561
в /storage/logs ничего интересного, а в логах апача всё сухо:
localhost: 127.0.0.1 [20/Oct/2017:14:32:15 +0300] "POST /contact/sendMessage HTTP/1.1" 500 41618 "http://localhost/contact" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36"
как аяксом сохранять загруженные через форму изображения?
мои пробы пера, которые без аякса работают, с ним - нет:
контроллер:
public function validateForm(Request $request)
{
$this->validate($request, [
'fio' => 'bail|required|string|max:36',
'email' => 'email|required',
'telephone' => 'regex:/^(\+){0,1}[0-9]{10,12}$/|required',
'attachmentFile' => 'file'
]);
if($request->hasFile('attachmentFile')){
$path_to_attach = '/attachmentFiles/';
$file = $request->file('attachmentFile');
$filename = str_random(20) . '.' . $file->getClientOriginalExtension() ?: 'png';
$file->move(public_path().$path_to_attach, $filename);
DB::table('cf_Orders')->insert([
'id' => 0,
'fio' => $request->fio,
'email' => $request->email,
'attachment' => $path_to_attach.$filename
]);
Mail::send('emails.orders', ['user' => $request->fio, 'email' => $request->email, 'telephone' => $request->telephone], function ($m) use ($request, $path_to_attach, $filename) {
$m->from('contact@pravoedelo.ua', 'Заявкa');
$m->to('away4people@gmail.com')->subject('Заявка о страницы: '.$_SERVER['HTTP_REFERER']);
$m->attach(asset($path_to_attach.$filename));
});
return 'true';
}
}
форма:
<div class="col-sm-12 courses_form wow fadeIn" data-wow-duration="2.0s">
<div class="title">Напишите нам</div>
<div class="col-sm-8 centered">
<form id='form' enctype="multipart/form-data" action="/contact/sendMessage" method="post">
<div class="col-sm-12">
<span class="input input--ruri">
<input name='fio' class="input__field input__field--ruri" type="text" required>
<label class="input__label input__label--ruri" >
<span class="input__label-content input__label-content--ruri">ФИО *</span>
</label>
</span>
</div>
<div class="col-sm-6">
<span class="input input--ruri">
<input name='email' class="input__field input__field--ruri" type="text" required>
<label class="input__label input__label--ruri" >
<span class="input__label-content input__label-content--ruri">Почта *</span>
</label>
</span>
</div>
<div class="col-sm-6">
<span class="input input--ruri">
<input name='telephone' class="input__field input__field--ruri" type="text" required>
<label class="input__label input__label--ruri" >
<span class="input__label-content input__label-content--ruri">Номер телефона *</span>
</label>
</span>
</div>
<div class="col-sm-12">
<span class="input input--ruri filled input--filled">
<input name='attachmentFile' class="input__field input__field--ruri" type="file">
<label class="input__label input__label--ruri" >
<span class="input__label-content input__label-content--ruri">Прикрепить файл</span>
</label>
</span>
</div>
{{ csrf_field() }}
<div class="col-sm-12"><input name='submit' type="submit" value="Отправить"></div>
<div id="openModal" class="modalDialog">
<div>
<h2>Сообщение</h2>
<p>текст</p>
</div>
</div>
</form>
</div>
</div>
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
скрипт, обрабатывающие клик по сабмиту:
document.addEventListener('DOMContentLoaded', function(){
$('#form').on('submit', function(){
var form = $('#form');
$.ajax({
url : form.attr('action'),
type : "POST",
contentType: false, // важно - убираем форматирование данных по умолчанию
processData: false, // важно - убираем преобразование строк по умолчанию
data : form.serialize(),
success:function(){
if(window.location.pathname.indexOf('contact') != -1){
$('#openModal > div > h2').html('<h2 style =\'margin-bottom:15%;\'>Спасибо, что доверились нам!</h2>');
$('#openModal > div > h2 + p').html('<p style=\'text-align: center;\'>Мы хотим узнать о Вас больше, ожидайте звонка в ближайшее время</p>');
}else if(window.location.pathname.indexOf('services-open') != -1){
$('#openModal > div > h2').html('<h2 style =\'margin-bottom:15%;\'>Вы успешно отправили заявку!</h2>');
$('#openModal > div > h2 + p').html('<p style=\'text-align: center;\'>Мы перезвоним Вам в течение 15 минут чтобы ответить на все вопросы</p>');
}else if(window.location.pathname.indexOf('courses-') != -1){
$('#openModal > div > h2').html('<h2 style =\'margin-bottom:15%;\'>Теперь Вы гость культурно-образовательного пространства LABS!</h2>');
$('#openModal > div > h2 + p').html('<p style=\'text-align: center;\'>Мы перезвоним Вам для уточнения брони. - в мероприятии</p>');
}
$('#openModal').fadeIn();
},
error:function(errors){
alert += "<div class='alert alert-danger'><ul>";
$.each(errors, function(index, error){
alert += "<li> + error + </li>";
});
alert += "</ul></div>";
$('#append').html(alert);
console.log( errors);
}
});
return false;
});
});
с чистого листа:
1. поставил новую ларку в новую папку composer create-project --prefer-dist laravel/laravel test
2. создал проект в netbeans
3. сделал роуты, форму и контроллер
Route::get('/', function () {
return view('form');
});
Route::get('/testform', 'TestController@index');
________________________________
<html>
<head>
</head>
<body>
<h1>TEST</h1>
<form action="testform" enctype="multipart/form-data" method="get">
<input type="file" name="testfile">
<input type="submit">
</form>
</body>
</html>
________________________________
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class TestController extends Controller
{
public function index(Request $request)
{
dump($request->hasFile('testfile')); die();
return view('form', compact('events'));
}
}
на выводе:
false
в новой форме проверил через $_FILES:
<!DOCTYPE HTML>
<html>
<head>
</head>
<body>
<h1>TEST</h1>
<form action="/testform.php" enctype="multipart/form-data" method="post">
<input type="file" name="testfile">
<input type="submit">
</form>
</body>
</html>
....
<?php
var_dump($_FILES);die();
?>
....
array(1) { ["testfile"]=> array(5) { ["name"]=> string(6) "1c.png" ["type"]=> string(9) "image/png" ["tmp_name"]=> string(39) "C:\OpenServer\userdata\temp\phpDC29.tmp" ["error"]=> int(0) ["size"]=> int(29951) } }
получаю false.
какие проблемы могут быть с конфигами?
делал форму с отправкой файлов и последующей работой с файловой системой/бд - всё работало.
спустя неделю копания в ларке заметил, что файлы уже не загружаются.
форма:
<form id='form' enctype="multipart/form-data" action="contact/sendMessage" method="get">
<div class="col-sm-12">
<span class="input input--ruri">
<input name='fio' class="input__field input__field--ruri" type="text" required>
<label class="input__label input__label--ruri" >
<span class="input__label-content input__label-content--ruri">ФИО *</span>
</label>
</span>
</div>
<div class="col-sm-6">
<span class="input input--ruri">
<input name='email' class="input__field input__field--ruri" type="text" required>
<label class="input__label input__label--ruri" >
<span class="input__label-content input__label-content--ruri">Почта *</span>
</label>
</span>
</div>
<div class="col-sm-6">
<span class="input input--ruri">
<input name='telephone' class="input__field input__field--ruri" type="text" required>
<label class="input__label input__label--ruri" >
<span class="input__label-content input__label-content--ruri">Номер телефона *</span>
</label>
</span>
</div>
<div class="col-sm-12">
<span class="input input--ruri filled input--filled">
<input name='attachmentFile' class="input__field input__field--ruri" type="file">
<label class="input__label input__label--ruri" >
<span class="input__label-content input__label-content--ruri">Прикрепить файл</span>
</label>
</span>
</div>
{{ csrf_field() }}
<div class="col-sm-12"><input name='submit' type="submit" value="Отправить"></div>
</form>
route: Route::get('/contact/sendMessage', 'ContactFormValidationController@validateForm');
controller:
public function validateForm(Request $request)
{
dump($request->hasFile('attachmentFile'));
dump($request); die();
....
result:
что я мог сломать?
устанавливал только wysiwyg Summernote, но подключаемые скрипты уже убрал
не суть. вырезал их с помощью strip_tags, хочу ограничить длину (для вывода фрагмента текста):
<ul id='menu'>
@foreach($events as $event)
<li class='menuItem'>
<h4> <a href='/getevents/{{$event->id}}'>
{{$event->title}}
</a></h4>
<p> <i>{{substr(strip_tags($event->content), 0, 200)}}... </i></p>
</li>
@endforeach
</ul>
в итоге выводится только у одного элемента:
если без форматирования - выводятся оба текста
переделал малость.
вывод:
<ul id='menu'>
@foreach($events as $event)
<li class='menuItem'>
<a href='/getevents/{{$event->id}}'>
{{$event->title}}
</a>
<p>{{substr($event->content, 0, 200)}}..</p>
</li>
@endforeach
</ul>
контроллер:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use App\Event as Events;class DataController extends Controller
{/**
* Show the application dashboard.
*
* @return \Illuminate\Http\Response
*/
public function eventsData(Request $request)
{
$events = Events::all();
return view('home', compact('events'));
}
}
как можно включить обработку html-тегов, которые содержатся в $event->content?
сейчас выводятся как текст.
не понял, как работает compact при передаче одной строки.
и в доке показан пример с передачей вторым аргументом массива, как я и делал.
получаю из БД данные:
public function eventsData(Request $request)
{
if ($request !== NULL){
$eventsObject = DB::table('events')->select('id', 'title', 'content')->get();
foreach($eventsObject as $event){
$data[] = $event;
}
// в $data в данный момент времени хранится массив из 2-х элементов, каждый из которых является объектом stdClass'a и содержит, соответственно, 3 поля: id, title, content
$view = view('home', $data);
return $view;
}
}
в представлении $data не определена:
что я хочу?
делаю админку. нужно получить список всех ивентов (айдишник, наименование и контент) и вывести списком:
<ul id='menu'>
<li class='menuItem'>{{ $data-id }}</li>
если отправлять не через Route::post, а Route::get , получаю 405 ошибку в коносли
итак, есть форма, отсылающие данные по роуту
Route::post('/contact/sendMessage', 'ContactFormValidationController@validateForm');
controller:
public function validateForm(Request $request)
{
$this->validate($request, [
'fio' => 'bail|required|string|max:36',
'email' => 'email|required',
'telephone' => 'regex:/^(\+){0,1}[0-9]{10,12}$/|required',
'attachmentFile' => 'file'
]);
if($request->hasFile('attachmentFile') && $request->file('attachmentFile')->isValid()){
$extension = $request->attachmentFile->extension();
$path_to_attach = '/attachmentFiles/'.$request->fio.'.'.$extension;
$request->file('attachmentFile')->move(public_path().'/attachmentFiles', $request->fio.'.'.$request->attachmentFile->extension());
DB::table('cf_Orders')->insert([
'id' => 0,
'fio' => $request->fio,
'email' => $request->email,
'attachment' => $path_to_attach
]);
Mail::send('emails.orders', ['user' => $request], function ($m) use ($request) {
$m->from('contact@pravoedelo.ua', 'Заявка со страницы контактов');
$m->to('away4people@gmail.com')->subject('Заявка со страницы контактов!');
});
}
return redirect('/');
}
хочу переделать на ajax-версию:
<script>
document.addEventListener('DOMContentLoaded', function(){
$('#form').on('submit', function(){
var form = $('#form');
$.ajax({
url : form.attr('action'),
type : form.attr('method'),
data : form,
success:function(){
$('#openModal').fadeIn();
},
error:function(errors){
alert += "<div class='alert alert-danger'><ul>";
$.each(errors, function(index, error){
alert += "<li> + error + </li>";
});
alert += "</ul></div>";
$('#append').html(alert);
console.log(errors);
}
});
return false;
});
});
</script>
но при отправке формы теперь получаю 500:
как обрабатывать данные, пришедшие из формы ajax-ом? нипонял
проблема заключалась в том, что при первой (забыл уже о ней) попытке миграции Users я ловил ошибку из-за длины поля. 767 bytes и всё такое.
решил установкой дефолтной длины полей