Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
А у меня не работает, ни с middleware, ни без него? Что делать?
Route::get('/', ['as' => 'index', 'uses' => 'HomeController@index']); Route::group(['prefix' => 'auth'], function(){ Route::get('login', ['as' => 'auth.login.get', 'uses' => 'Auth\AuthController@getLogin']); Route::post('login', ['as' => 'auth.login.post', 'uses' => 'Auth\AuthController@postLogin']); });
php artisan make:auth
Или в роутах Route::auth(); прописать
Да, web middleware автоматически подключается ко всем маршрутам в routes.php, начиная с версии 5.2.27 и, если подключать его снова вручную, будут проблемы с сессиями и пр.
Теперь все понятно. Спасибо за четкий ответ
Здравствуйте.
Сегодня установил ларавел,что бы перенести приложение. И заметил что не сессии не validator не работают.
Установил заного ларавел,и все та же проблема. Потом заглянул в роуты,и заметил что группы middleware => web уже нет в роутах. Вынес все роуты из этой группы,и все стало работать (сессии,валидатор).
Собственно вопрос. Уже не обязательно все роуты в группу веб заключать?
Решение найдено.
Все делаю через ajax
// create.blade.php
<table class="table table-condensed">
<thead id="spec">
<tr>
<th>Характеристика</th>
<th>Значение</th>
<th></th>
</tr>
</thead>
<tbody id="spec-cont">
<tr>
<td>{!! Form::input('text','spec_name',null,['class' => 'form-control','id' => 'spec_name']) !!}</td>
<td>{!! Form::input('text','spec_value',null,['class' => 'form-control','id' => 'spec_value']) !!}</td>
<td><button id="save" type="button" class="btn btn-success">добавить</button></td>
</tr>
</tbody>
</table>
<label for="specifications">Характеристики</label>
<select class="form-control" multiple="multiple" id="results" name="specifications[]" style="height: 400px;">
</select>
@section('scripts')
<script>
$('#save').click(function() {
$.ajax({
type: "post",
url: "{{ url('admin/api/specifications/save') }}",
headers: {
'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content')
},
data: {
spec_name: $('#spec_name').val(),
spec_value: $('#spec_value').val()
},
success: function(data) {
$('#results').append($('<option>', {value: data[0], text: data[1]+' '+ data[2]}));
$('#spec-cont').find('input[type=text]').val('');
},
error: function(xhr, str){
alert('Возникла ошибка! Попробуйте заного');
}
});
});
</script>
// ApiSpecificationController
/**
* Save specifications to db
*
* @param SpecificationRequest $request
* @return array
*/
public function store(SpecificationRequest $request)
{
$spec = new Specification();
$spec->spec_name = $request->input('spec_name');
$spec->spec_value = $request->input('spec_value');
$spec->save();
return [$spec->id,$spec->spec_name,$spec->spec_value];
}
Данные возвращаются в <select>, а потом уже в CarController в методе store аттачим.
public function store(CarRequest $request)
{
$car = new Car();
// ...
$car->save();
$car->specification()->attach($request->input('specifications'));
return redirect('admin/cars')
->with('text','Автомобиль '.$car->name .' успешно добавлен');
}
Добрый день.
Есть две модели: Car и Specification.
Связаны many to many
// Car
/**
* Car specifications
*
* @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
*/
public function specification()
{
return $this->belongsToMany(
'App\Specification',
'car_specification',
'car_id',
'specification_id'
);
}
// Specification
/**
* Specification
*
* @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
*/
public function car()
{
return $this->belongsToMany(
'App\Car',
'car_specification',
'specification_id',
'car_id'
);
}
В CarController пытаюсь сначало занести данные в таблицу specifications
public function store(CarRequest $request)
{
$car = new Car();
// ...
$car->save();
$specifications = Specification::create([
'name[]' => $request->input('spec_name'),
'value[]' => $request->input('spec_value'),
]);
$car->specification()->attach($specifications->id);
return redirect('admin/cars')
->with('text','Автомобиль '.$car->name .' успешно добавлен');
}
Спецификации добавляются,но только одна запись, хотя я клонирую эллемент. и в пивотной таблице car_specification тоже 1 запись.
Как решить проблему?
Я Yii пытался изучить раза три, причем через силу. Каждый раз отталкивло чувство "все не так, все не то". Плюнул на него, когда поверхностно изучил Symfony. Так бы и остался на Symfony, если бы не узнал о Laravel. Последний показался менее академичным и более практичным. Плохие практики здесь используются очень к месту. А Yii? Вообще забыл о нем и желания изучать нет вообще.
Я вообще не понимаю почему в России он на первом месте по популярности, больше нигде он так широко не используется. Видимо обилие книг, переведенных на русский язык, оказало влияние. Для Symfony и Laravel книг на русском нет.
У нас в Узбекистане аналогичная ситуация. Все компании буквально помешаны на этом yii. Laravel,symfony разработчиков,по пальцам пересчитать можно)
Доброго времени суток.
Появилась задача реализовать характеристики товаров.
Я даже не представляю как грамотно это сделать,ибо с инет магазинами некогда не работал.
Первое что пришло в голову (структура бд).
Attributes group
- id
- name
Attributes name
- id
- name
- attributes_group_id // one 2 many with attributes group table
- product_id // one 2 many with product table
Attributes value
- id
- value
- custom_value
- attributes_name_id // one 2 many with attributes name table
Тут возникает вопрос. Как при добавлении товара в методе store внести значение в поле "custom_value" таблицы "attributes_value" ?
И есть ли более каноничная реализация?))
Спасибо!
В идеале должна быть 1 таблица и разделение по ролям
А если Route::auth()
Или так https://laracasts.com/discuss/channels/ … tes?page=1
какие пароли надо вводить при подключении к базе данных!
DB_HOST=localhost
DB_DATABASE=
DB_USERNAME=
DB_PASSWORD=
Если пасс и логин не менялись,то DB_HOST=localhost
DB_DATABASE=
DB_USERNAME=root
DB_PASSWORD=null
Категории можно направить на самих себя так сказать как тут https://laravel.ru/forum/viewtopic.php?id=1475
Спрошу тут дабы не создавать новую тему.
Как вынести админку на сабдомен? Тоесть,с роутами проблем нет. Куда направлять алиас сабдомена? Так же на /public?
TrueKanonir пишет:public function setSlugAttribute($value) { $this->attributes['slug'] = str_slug($value); }
это где вы прописуете ?
В моделе,которая связана с таблицей в которой есть поле slug)))
public function setSlugAttribute($value)
{
$this->attributes['slug'] = str_slug($value);
}
пытаюсь подключить css но не могу. судя по всему оно не там ищет.
поместил файл в папку resources/assets/css/main.css
подключил при помощи кода: <link href="{{ URL::asset('resources/assets/css/main.css') }}" rel="stylesheet" type="text/css" >
получил на сайте вот это: http://prntscr.com/ajfdrr
то есть в теории оно подключило как я хотел, но файл оно там не нашло и пишет ошибку, что в роуте нету такого пути.
как подключить css?
пытался многими способами и http и https всегда одно и тоже. вместо стилей страница ошибки.
Поместить скрипты и стили в директорию "public"
Просто сменил категории на "category/blahblah", и не стал заморачиваться)
Как вариант,установить престу,опенкарт или магенто,и посмотреть как там реализовано загрузка нескольких изображений к одному товару
Нашел способ. Тема закрыта
А как отличить урл '/cat/blah" от '/cat/blahblah' ? Верно, никак
```
Route::get('/cat/{catalog}', 'CatalogController@showCatalog');
и
Route::get('/cat/{category}', 'CategoryController@showCategory');
```
Это два обработчика одного маршрута
То есть такого вида маршруты вообще не реализуемые?))
Всем доброго времени суток.
Имеется каталог:
- Электроника
- Фото и видео
- ...
Он соединен с категориями many 2 many.
Категории в свою очередь соединены one 2 many
/**
* Category parent
*
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
*/
public function parent()
{
return $this->belongsTo('App\Category', 'parent_id');
}
/**
* Category children
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany
*/
public function children()
{
return $this->hasMany('App\Category', 'parent_id');
}
Хотелось бы сделать роуты вот такого вида
# Catalog & Category
Route::get('/cat/{catalog}', 'CatalogController@showCatalog');
Route::get('/cat/{catalog}/{category}', 'CategoryController@showCategory');
Route::get('/cat/{catalog}/{category}/{children}', 'CategoryController@showChildrenCategory');
Но при попытке открыть категорию,выдает
No query results for model [App\Category].
Как решить проблему?)