Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Проблема решена путем обновления Laravel до последней версии.
Как правильно реализовать валидацию нескольких изображений (multiple) в Laravel 5.3:
Делаю так:
<form method="post" action="/add" enctype="multipart/form-data">
{{ csrf_field() }}
<input name="image[]" type="file" multiple>
<button type="submit">Добавить</button>
</form>
$this->validate($request,[
'image.*' => 'mimes:jpeg,jpg,png|dimensions:min_width=200,min_height=200|max:3000'
]);
Все бы хорошо но если не выбираю изображения вылетают все ошибки по валидации.
1. В layout должен быть @yield('content') на месте контента который будет меняться.
2. В контролере или в роуте должен быть прописан view на blade файл который должен встраиваться в layout п кримеру - return view('index')
3. Ну и сам файл index:
@extends('layout')
@section('content')
Вставляешь свой код
@stop
Смотри подробнее: https://laravel.com/docs/5.1/blade
Через use подключается все в самом начале.
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\Album;
use App\Gallery;
use DB;
use Carbon/Carbon;
Решение:
this.$http.get('/comments').then(function(data)
{
this.$set('comments', data.json());
});
Пытаюсь сделать комментарии через vue но вывод через v-for не работает выяснилось что даже console.log не отрабатывает в
this.$http.post('/comments', function(data)
Сам vue работает а вот Vue-resource не хочет. Как можно его проверить и в чем может быть причина ?
Vue и Vue-resource подключал через npm, gulp, elixir. Делал все по этому видео https://www.youtube.com/watch?v=qA5PlSh1Qq8
Vue:
Vue.http.headers.common['X-CSRF-TOKEN'] = $('meta[name="csrf-token"]').attr('content');
new Vue({
el: '#realtime',
methods:
{
fetchComments: function()
{
this.$http.post('/comments', function(data)
{
console.log(data);
this.$set('comments', data);
});
}
},
ready: function()
{
this.fetchComments();
}
});
Вырезки с шаблона:
<meta id="token" name="csrf-token" content="{{ csrf_token() }}">
<div id="realtime">
<div v-for="comment in comments">
<p><b>@{{ comment.name }}</b> <span class="date">@{{ LocalizedCarbon::instance(comment.created_at)->diffForHumans() }}</span></p>
<p>@{{ comment.comment }}</p>
</div>
</div>
<script src="{{ URL::asset('bootstrap/js/vue.js') }}"></script>
<script src="{{ URL::asset('bootstrap/js/realtime.js') }}"></script>
Роут:
Route::get('/', function ()
{
return view('layout');
});
post('/comments', function()
{
return App\Comment::orderBy('created_at', 'DESC')->get();
});
Все спасибо разобрался. Структура была не правильной.
FormItem::select('season_id', 'Сезон')->model('App\Season')->display('title')->required(),
Сезоны отображает, но при редактировании не выбирает нужный. Показывает как новый
Доделываю админку на SleepingOwl v3
Столкнулся с проблемой есть таблица Options и Seasons соединяются через Many to Many дополнительной таблицей Option_Season.
При редактировании ptions нужно показать активный Seasons и возможность его сменить.
Делаю следующее:
FormItem::select('season_id', 'Сезон')->list('\Season')->required(),
На что мне выдает ошибку:
Call to undefined method SleepingOwl\Admin\FormItems\Select::list()
Добавляю в модель Season:
public static function getList()
{
return static::lists('name', 'id');
}
Ошибка та же.
Пытался делать как в демо примере.
Сменил в моделе:
class Season extends Model
на
use SleepingOwl\Models\SleepingOwlModel;
class Season extends SleepingOwlModel
Выдает ошибку:
Class 'SleepingOwl\Models\SleepingOwlModel' not found
Как с этим бороться ? Либо где находится SleepingOwl\Models\SleepingOwlModel ?
{{ (Request::is('companies') ? 'class=active' : '') }}
Где companies - ваш route
Хочу установить SleepingOwl Admin что бы не писать админку самому, но не могу понять как сделать пункт 1
когда пишу "sleeping-owl/admin": "dev-development"
пишит сисетмный пункт не найден подскажите как установить аднимнку
Можешь глянуть тут -> http://www.youtube.com/watch?v=ca4zn71n4BI
Как я понимаю это нужно реализовать с помощью SQL запроса (JOIN)
Имеются 2ве таблицы "Categories" и "Products" связанные Many To Many (Многие к многим) дополнительной таблицей "Category_Product". С выводом всех категорий проблем не возникло но не могу понять как вывести только те категории в которых есть товар.
Начинал делать так:
// Выбираем весь товар
$products_all = Product::All();
// Узнаем их категории
foreach ($products_all as $product)
{
foreach ($product->categories as $category)
{
$category_array[] = $category->id;
}
}
// Убираем повторяющиеся категории
$categories_unique = array_unique($category_array);
Но подумав понял что в итоге их же придется выводить с помощью toHierarchy() а он не поддерживает массивы (whereIn)
Как быть ? В какую сторону копать ?