Laravel по-русски

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

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

#26 Re: Laravel 5.x » Простой блог на laravel 5 » 30.04.2015 01:51:24

sedvig пишет:

Появилась необходимость сделать простой блог. Долго сидеть нет времени, да и на пятой ларе только еще начинаю кодить.
Собственно вопрос - есть ли простенький блог на 5й версии (пусть даже и с необходимостью небольшого допила)?

Я правильно понимаю?
1. Времени нет. Т.е. надо что бы вчера
2. 5 Ларку первый раз увидел? И разбираться особенно не хочется?

Вопрос, зачем тебе тогда блог именно на ларке? Wordpress и вперед.
Процеес изучения ларки ни терпит спешки. Надо потратить время, разобраться, как что работает, а потом в учебных целях за пару дней написать блог.

#27 Re: Laravel 5.x » Laravel и Twitter Bootstrap. » 23.04.2015 02:18:31

Забей на то, что там лежит. Качай нормальный дистрибутив и подключай к странице.

#30 Re: Laravel 4 » Route и Немного БД. » 27.02.2015 09:26:11

1. Контроллер должен быть один
Route::controller('/test','MainController')
В самом контроллере получаешь данные из разных моделей
$model1=new Component;
$model2=new Type;
Далее крутишь данными, как хочешь и выплевываешь во вьюшку (представление)
2. Можно
$query = DB::table('component')->leftJoin('type','type.component_id','=','type.id')->select('component.title','type.name'........)->get();

#31 Re: Laravel 4 » Счетчик комментариев » 25.02.2015 02:18:40

По мне так лучше считать count. Зачем плодить лишние таблицы и еще отслеживать их изменения? Когда вся информация уже есть в существующих таблицах.

#32 Re: Laravel 4 » Фильтр csrf » 24.02.2015 02:17:17

Форму как создаешь?

Form::open()?
Или ручками: <form method="POST">
Если второй вариант то скрытое поле надо создавать ручками

<input type="hidden" name="_token" value="{{csrf_token()}}">

#33 Re: Laravel 4 » Как запретить вводить недопустимые значения страниц? Paginator. » 16.02.2015 02:14:59

Вводить дополнительную  проверку.

$articles=DB::table('article')->count('id'); // общее количество записей
$allpage=ceil($article/10) //10 - это количество записей на одной странице. Значение округляется  в большую сторону. $allpage - общее количество страниц
if(Input::get('page')>$allpage) // если запрошенная страница больше чем общее количество страниц то выкидываем 404
{
   App::abort(404);
}

#34 Re: Laravel 5.x » Создание ЧПУ » 12.02.2015 02:20:47

Достаточно.
Но

Route::get('/{catalog_slug}', 'CatalogController@show');

под этот шаблон может много чего лишнего попасть.
Например:
site.ru/catalog
site.ru/article
site.ru/contacts
И обработку эти маршрутов будет брать на себя CatalogController@show.
Хотя если на сайте будет только каталог то нормально.

#35 Re: Laravel 4 » Выборка из двух таблиц ORM » 29.01.2015 02:05:27

Пример выборки по цене от 1000 до 3000

$data=DB::table('products')->whereBetween('price',[1000, 3000])
		->leftJoin('categories','products.category_id','=','categories.id')
		->leftJoin('atributes','atributes.category_id','=','categories.id')
		->leftJoin('value','value.atribute_id','=','atributes.id')
		->select('products.name as name','products.price as price','categories.name as category','atributes.name as atribute','value.value')
		->orderBy('products.price')
		->get();

#36 Re: Laravel 4 » Выборка из двух таблиц ORM » 28.01.2015 03:16:24

Через Eloquent скорее все не получится. Через ОРМ  работает.
Это запрос всех товаров со всеми атрибутами и значениями атрибутов, с названием категории с сортировкой по цене.

class MainController extends BaseController {

	public function index()
	{		
		$data=DB::table('products')
		->leftJoin('categories','products.category_id','=','categories.id')
		->leftJoin('atributes','atributes.category_id','=','categories.id')
		->leftJoin('value','value.atribute_id','=','atributes.id')
		->select('products.name as name','products.price as price','categories.name as category','atributes.name as atribute','value.value')
		->orderBy('products.price')
		->get();
		
		return View::make('index',['data'=>$data]);
	}

}
Во вьюшке делаешь разбор

@foreach($data as $item)
{{$item->price}}
{{$item->name}}
....
{{$item->value}}

#37 Re: Laravel 4 » Выборка из двух таблиц ORM » 27.01.2015 04:46:36

Для каждого товара атрибут только один? Т.е. если это жесткий диск, то он имеет только объем? Или атрибутов для каждого товара буде много? Объем, размер, скорость и.т.д.?

#38 Re: Laravel 4 » Выборка из двух таблиц ORM » 26.01.2015 09:10:42

По-моему, здесь проблема не в запросе, а скорее в неправильно спроектированных таблицах.

#39 Re: Laravel 4 » заполнение БД из xlsx файла » 26.01.2015 02:04:20

С xlsx лучше не работать. Сохрани файл как csv. Потом есть встроеная функция в PHP fgetcsv. Разбираешь построчно и загоняешь в базу.

#40 Re: Laravel 4 » Как вывести в запросе определенные столбцы? » 31.12.2014 04:51:58

$model=Phone::where('id','=','82')->take(1)->get();
return .........

И далее

$model->name;
$model->title;
$model->id;

#42 Re: Laravel 4 » Как удалить массив Cookie? » 22.12.2014 10:33:31

Куки можно удалять обычным php способом.

public function delcookie(){
foreach($_COOKIE as $key){
if(!is_int($key)) continue;
setcookie($key,' ');
}
return Redirect::to('cart/index');
}

функция удалить все куки, имена которые, целые числа.

На деле не пробовал.

P.S. Для хранения карзины в куках, я использую json формат. {"1":{"price":1000, "amount":2}}. И что бы очистить корзину, достаточно удалить одну куку.

#44 Re: Laravel 4 » Как получить данные при любом роуте. » 19.12.2014 01:51:12

В app/start/global.php
В конце файла пишишь

$menu=MenuModel::All();
View::share('menu',$menu);

Теперь переменная $menu будет доступна в любой вьюшке.

#45 Re: Laravel 4 » laravel 4 routing проблема с созданием роута » 07.12.2014 09:06:00

Необязательные параметры со значением по умолчанию:

Route::get('user/{name?}', function ($name = 'John') {
  return $name;
});

#46 Re: Laravel 4 » Не работает Auth::login() » 28.11.2014 13:55:32

Если перенаправление на  mydomain.ru работает, значит mod_rewrite отрабатывает. Значит проблема в базе. Попробуй создать, какой-нибудь левый роут, и посмотри, выгружаются ли данные из базы.

Route::get('left', function(){
$user=Users::All(); // Или как у тебя таблица называется с пользователями....
return View::make('left', ['user'=>$user]);

Делаешь вьюшку left.blade.php

@foreach($user as $vol)
{{ $id }}<br>
{{ username }}<br>
....
...
@endif

Если пустота по адрсу mydomain.ru/left, то проблема с базой.

#47 Re: Laravel 4 » MyModel::update($id, $arr) » 28.11.2014 13:19:09

Можно совсем просто. В классе модели пишешь

protected $fillable=['username','password', 'email'......];

$fillable значит, что поля могут быть заполнены автоматически данными из вьюшки
Потом в роутах

Route::post('/foo', function(){
UserModel::create(Input::all());
return Redirect:to........

Имена полей во вьюшке должны соответствовать именам колонок в mysql.
Самое клевое, что метод create не надо прописывать в модели. Магия smile

Для update можно сделать тоже самое

Route::post('/foo/{id}', function($id){
UserModel::find($id);
$user->update();
return Redirect::to.....

#48 Re: Laravel 4 » Не работает Auth::login() » 28.11.2014 13:03:55

Могу предположить что проблема в mod_rewrite в apache. Либо нет базы users в mysql. Или логин пароль для базы не правильный, что скорее всего

#50 Laravel 4 » Как получить данные при любом роуте. » 24.11.2014 09:37:12

Afatar
Ответов: 13

Добрый день!

Есть сайт, в котором есть меню, мета теги, название сайта, описание и прочее, что должно быть на каждой странице, не зависимо от роута. Все эти данные вытягиваются из mysql. Т.е. меню - это модель, которая наследуется от  Eloquent. Название сайта и теги, также хранятся в базе и тоже представляют собой модель. Вопрос? Как вытаскивать эти данные перед любым запросом?
Т. е. есть ли какое-то место  в laravel, где можно объявить один раз, например:

$menu=MenuModel::All();
$SiteName=SettingsModel::All();
.....
....

и свободно использовать в любой вьюшке

<div id=header>
$SiteName->name;
</div>
<ul>
    <li>$menu->item</li>
</ul>
....
...

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