Laravel по-русски
Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Что то для меня сложно сильно )
Подскажите а способа по проше нету ?)
Удалил таблицу, миграция выполнилась, таблица создалась но все равно выдает такую ошибку
[Illuminate\Database\QueryException]
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long;
max key length is 767 bytes (SQL: alter table `menus` add unique `menus_alias_uniq
ue`(`alias`))
[PDOException]
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long;
max key length is 767 bytes
это что view composer где про не го можно почитать
Это в каждом контролеры вызывать это ужас (( А если наследовать и в родительском контрлере вызывать методы и все
[Illuminate\Database\QueryException]
SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'users' already exis
ts (SQL: create table `users` (`id` int unsigned not null auto_increment primary ke
y, `name` varchar(191) not null, `email` varchar(191) not null, `password` varchar(
191) not null, `remember_token` varchar(100) null, `created_at` timestamp null, `up
dated_at` timestamp null) default character set utf8mb4 collate utf8mb4_unicode_ci)
[PDOException]
SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'users' already exis
ts
забыл параметр передать?
передавал все равно не работает
[ErrorException]
Missing argument 1 for Illuminate\Database\Schema\Builder::defaultStringLength(), c
alled in D:\OpenServer\domains\travel.loc\vendor\laravel\framework\src\Illuminate\S
upport\Facades\Facade.php on line 221 and defined
Выполнил таже самая ошибка
Скажи, а если я создам котроел MainController который будет делать выборку для меню катрегорий и футера и будет передавать эти значения в вид лайоут
Да я меню хранить буду в БД )) и категории будут в БД. Я знаю что сайт на WP подходит, проще сделать, да и шаблон WordPress я для учебных целий делаю на Laravel на WordPress я бы уже сделал бы его
а зачем хранить меню и сайдбар в базе? если набор страниц фиксированный, их можно прямо в вид захардкодить
НЕ много не пойму а что в каждом контролеры вызывать выборку меню и сайтбара
Можете на моем примери показать (
какие туда переменные надо передавать?
Смотрите, если я оставляю меню и sibebar и футер в лайоте.
Мне же надо будет из БД выбрать меню, sibebar и футер и передать результаты выборки в шаблон лайот, какой контролер должен это обрабатывать, или как правельно сделать
При выполнение в консоли миграции выдает такую оишбку
php artisan migrate
Migration table created successfully.[Illuminate\Database\QueryException]
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long;
max key length is 767 bytes (SQL: alter table `users` add unique `users_email_uniq
ue`(`email`))[PDOException]
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long;
max key length is 767 bytes.
Хотя с таблицей users я не работал создал свою таблицу
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateMenusTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('menus', function (Blueprint $table) {
$table->increments('id');
$table->string('title', 200);
$table->string('alias', 200)->unique();
$table->integer('position')->nullable();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('menus');
}
}нет. ларавель – не битрикс, не надо пытаться из него сделать то чем он не является. контент и есть содержание вида, с остальным надо решить что является лейаутом а что включаемыми элементами. меню так например точно – часть лейаута. в сами включаемые элементы данные могут идти как из контроллера (если они зависимы от контента страницы) или вообще собираться отдельным вью-композером.
Так лучшие меню оставить в лейауте ? а как туда передать переменные ? для каждого создавать контролер
Привет, я вот учу Laravel и вот решил делать сайт на нем(чисто в учебных целях). Вот есть такой шаблон, я его разбил на части(видел красный цветом)
То есть как я понял, мне нужно для каждого вида создать свой контроллер и делать выборку в нем ? и передавать переменую ввид sidebar
Вот так я склевиваю шаблон
@extends('layouts.site')
@section('menu')
@include(env('TEMHE').'.menu')
@endsection
@section('slider')
@include(env('TEMHE').'.slider')
@endsection
@section('content')
@include(env('TEMHE').'.content')
@endsection
@section('sidebar')
@include(env('TEMHE').'.sidebar')
@endsectionПравильно ли ?
Доброе утро, подскажите есть ли расширение для laravel, что бы можно было решить такую проблему.
Вот такое у меня в статии есть фото, очень много фото, прописаные вручную кодом(img), может есть расширения что то типо как в WordPress или Joomla я загрузил изображения в папку а потом его выбрал. Просто очень долго прописывать это все вручную когда я добавляю статью на сайт
не понял вас ?
Не могу понять, почему не загружается изображение вот код
if($request->isMethod('POST'))
{
$input = $request->except('_token');
$messager = [
'required' => "Поле :attribute обязательно к заполнению",
];
$valid = Validator::make($input, [
'title' => 'required|max:150',
'alias' => 'required|unique:pages|max:150',
'text' => 'required',
'images' => 'required'
], $messager);
if($valid->fails())
{
return redirect()->route('pagesAdd')->withErrors($valid)->withInput();
}
if($request->hasFile('images')) {
$file = $request->file('images');
dd($file);
$input['images'] = $file->getClientOriginalName();
$file->move(public_path().'/site/img/',$input['images']);
}
$page = new Page();
$page->fill($input);
if($page->save())
{
return redirect()->route('page')->with('status','Страница добавлена');
}
}Вот форма для добавления
<div class="container">
<div class="row">
<div class="col-md-12 admin_content">
<form action="{{ route('pagesAdd') }}" method="POST" class="form-horizontal">
<div class="form-group">
<label for="exampleInputEmail1">Название</label>
<input type="text" class="form-control" name="title" id="exampleInputEmail1" value="{{ old('title') }}">
</div>
<div class="form-group">
<label for="exampleInputPassword1">Адрес</label>
<input type="text" value="{{ old('alias') }}" name="alias" class="form-control" id="exampleInputPassword1" >
</div>
<div class="form-group">
<label for="exampleInputEmail1">Текст</label>
<textarea class="form-control" id="editor" rows="3" name="text" >{{ old('text') }}</textarea>
</div>
<div class="form-group">
<label for="exampleInputFile" >Изображение</label>
<input class="filestyle" data-buttonText = "Выберите изображение"
data-buttonName = "btn-primary" data-placeholder="Файла не загружен" type="file" value="{{ old('images') }}" name="images" id="exampleInputFile" >
</div>
{{ csrf_field() }}
<button type="submit" class="btn btn-primary">Добавить</button>
</form>
<script>
CKEDITOR.replace('editor');
</script>
</div>
</div>
</div>Хотя имя файла получаю и в БД заноситься а вот файл в папке public > site > img не отображается
Спасибо, за совет, буду искать проблему
Убрал, не возвращай. В представление поставь {{ session('status') }} без проверки (вне if) . На всякий случай очисти кэш маршрутов и представлений:
php artisan route:cache php artisan view:clearКод у тебя правильный, должно работать, если не лез в Http\Kernel.php
Сделал все равно не фига ( в Kernel я не лез
Убрал проверил, все равно не выводиться
matros97 пишет:AlexeyMezenin пишет:}%matros97, в маршрутах подключаешь web middleware? Какая именно версия фреймворка?
Да подключил посредник web, а версия Laravel 5.3 но как я понял, что посредник web уже вшитый в марширут
Значит в нем проблема. В 5.3 если его поключить вручную в web.php, он ломает сессии. Убери его из маршрутов.
Убирал, тоже самое не чего не выводит
}%matros97, в маршрутах подключаешь web middleware? Какая именно версия фреймворка?
Да подключил посредник web, а версия Laravel 5.3 но как я понял, что посредник web уже вшитый в марширут
Не могу понять, почему не работает сессия, в версии 5,1 работало все
вот код в контролери когда сообщение отправлено
if($result) {
return redirect()->route('homer')->with('status', 'Email is send');
}а вот ввиде ввывод сессии, которая не чего не выводит, хотя сообщение отправляеться
@if(session('status'))
<div class="alert alert-success">
{{ session('status') }}
</div>
@endif