Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 Laravel 5.x » Laravel, VestaCP, httpS » 30.10.2017 22:02:16

Anque
Ответов: 0

сайт лежит на впсе, установлена веста.
пробую перевести сайт на httpS, но получают 403 ошибку (https://pravoedelo.ua)
права и юзер установлены верно.
569jP1l.png

в чём может быть трабл? какие-то доп. настройки для ларки нужны? /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>

#4 Laravel 5.x » Кэширование шаблонов blade? » 27.10.2017 11:42:29

Anque
Ответов: 3

обнаружил, что без очистки кэша съезжает хедер на сайте.

@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&amp;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>

становится вот так: oWGZGeJ.png
должно быть (с очисткой кэша): H8mY5FY.png

#5 Re: Laravel 5.x » Пагинация + аякс » 27.10.2017 08:47:56

вот сюда вьюха 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>

#6 Laravel 5.x » Пагинация + аякс » 27.10.2017 08:42:00

Anque
Ответов: 2

роут "/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.

#7 Laravel 5.x » Докидывание миграций » 24.10.2017 11:08:10

Anque
Ответов: 1

на локалке есть миграции, создающие 8 таблиц в БД.
на прод залил эти миграции, но не знаю, как их выполнить, ибо там сейчас 4 из 8 (добавил же новые) таблиц, и они наполнены данными.
не хочется делаться migrate:refresh,  ибо потеряю данные.
данные - массивные, статьи с изображениями, ссылками, html-разметкой и т.п.

#8 Re: Laravel 5.x » Ajax-загрузка файлов на сервер » 20.10.2017 15:27:26

1. сделал без ретурна
2. и что там увидеть? выше скрин вкладке network

#9 Re: Laravel 5.x » Ajax-загрузка файлов на сервер » 20.10.2017 14:57:18

дак я ж в коде и сделал)
PcfBd4X.png

во вкладке нетворкс ничего интересного нету:
f4bGzPf.png

#10 Re: Laravel 5.x » Ajax-загрузка файлов на сервер » 20.10.2017 14:50:06

хз.
сделал в контроллере : return dd($request);
в аяксе добавил :           success:function(dd){
              console.log('log: ' + dd);
...

получил во вкладке console нечитаемое RrzdAJK.png

#11 Re: Laravel 5.x » Ajax-загрузка файлов на сервер » 20.10.2017 14:38:47

думал так и сделать, но.. а как? файлы get-ом не передаются по определению, только post-ом.
но чтобы что-то вывести на экран, мне нужен get. что ддшить-то? ))

#12 Re: Laravel 5.x » Ajax-загрузка файлов на сервер » 20.10.2017 14:33:44

вот товарищ как-то решал с 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"

#14 Laravel 5.x » Ajax-загрузка файлов на сервер » 20.10.2017 14:19:54

Anque
Ответов: 14

как аяксом сохранять загруженные через форму изображения?
мои пробы пера, которые без аякса работают, с ним - нет:

контроллер:

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;
    });
 
});

#15 Re: Laravel 5.x » Не отправляется файл через форму » 18.10.2017 14:10:42

с чистого листа:
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

#16 Re: Laravel 5.x » Не отправляется файл через форму » 18.10.2017 13:35:15

в новой форме проверил через $_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) } }

#17 Re: Laravel 5.x » Не отправляется файл через форму » 18.10.2017 13:16:26

получаю false.
какие проблемы могут быть с конфигами?

#18 Laravel 5.x » Не отправляется файл через форму » 18.10.2017 12:15:16

Anque
Ответов: 5

делал форму с отправкой файлов и последующей работой с файловой системой/бд - всё работало.
спустя неделю копания в ларке заметил, что файлы уже не загружаются.
форма:

<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:
LycMGmi.png

что я мог сломать?
устанавливал только wysiwyg Summernote, но подключаемые скрипты уже убрал

#19 Re: Laravel 5.x » Передача массива данных в blade-шаблон » 11.10.2017 14:42:28

не суть. вырезал их с помощью 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>

в итоге выводится только у одного элемента:
NE76HI1.png

если без форматирования - выводятся оба текста

#20 Re: Laravel 5.x » Передача массива данных в blade-шаблон » 11.10.2017 14:33:35

переделал малость.
вывод:     

<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?
сейчас выводятся как текст.

#21 Re: Laravel 5.x » Передача массива данных в blade-шаблон » 11.10.2017 14:15:00

не понял, как работает compact при передаче одной строки.
и в доке показан пример с передачей вторым аргументом массива, как я и делал.

#22 Laravel 5.x » Передача массива данных в blade-шаблон » 11.10.2017 13:27:01

Anque
Ответов: 6

получаю из БД данные:

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;
        }
    }

Psec83s.png
в представлении $data не определена:
Hm1Xv3G.png
что я хочу?
делаю админку. нужно получить список всех ивентов (айдишник, наименование и контент) и вывести списком:

<ul id='menu'>
        <li class='menuItem'>{{ $data-id }}</li>

#23 Re: Laravel 5.x » Получение ajax-данных формы » 06.10.2017 14:21:03

если отправлять не через Route::post, а Route::get , получаю 405 ошибку в коносли

#24 Laravel 5.x » Получение ajax-данных формы » 06.10.2017 13:56:34

Anque
Ответов: 2

итак, есть форма, отсылающие данные по роуту
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:
WK29PKK.png

как обрабатывать данные, пришедшие из формы ajax-ом? нипонял

#25 Re: Laravel 5.x » Бэкенд » 05.10.2017 17:06:44

проблема заключалась в том, что при первой (забыл уже о ней) попытке миграции Users я ловил ошибку из-за длины поля. 767 bytes и всё такое.
решил установкой дефолтной длины полей

Подвал раздела