Laravel по-русски

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

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

#26 Laravel 5.x » Has Many Through или аналогичное решение » 12.12.2016 09:51:44

fagtr
Ответов: 2

Добрый день.

Есть табличка Post в которой есть поля id, category_id и project_id
posts
   -id
..
..
..
-category_id
-project_id


Есть Catagory
categories
   -id
..
..
..


Есть Project
projects
   -id
..
..
..

App\Post
    public function category(){
        return $this->belongsTo('App\Category');
    }

    public function project(){
        return $this->belongsTo('App\Project');
    }

А вот как теперь в модели Project мне получить список категорий через модель Post?
например через Has Many Through
    public function categories($project_slug)
    {
        $pr = $this->whereSlug($project_slug)->first();
        return $pr->hasManyThrough(
             'App\Category','App\Post',
            'category_id', 'id')->get();
    }

какие воощбе есть варианты решения задачи?

Заранее спасибо

#27 Re: Laravel 5.x » Надо как то VK api прикрутить » 27.11.2015 23:57:12

странно... меньше года назад когда joomla использовал был(и есть) компонент для экспорта в ВК.

Надо API внимательнее посмотреть

#28 Laravel 5.x » Надо как то VK api прикрутить » 25.11.2015 18:05:23

fagtr
Ответов: 3

Добрый день!

Необходим доступ к vk api ... Что то не нашел  пакета.
Буду благодарен если подскажете.

Доступ к api необходим чтобы экспортировать записи с сайта в паблик\группу

Спасибо!

#30 Laravel 5.x » Авторизация через социалки » 17.06.2015 09:48:55

fagtr
Ответов: 6

Всем привет.
Хочу реализовать авторизацию через соц сети.

В документации есть пример реализации с помощью socialite,но к сожалению(как я понял авторизацию через вк не поддерживает)

Что мне нужно - мне нужна авторизация через VK Facebook Google и Twitter

Поиск пакета не привел к результату тк пакетов oauth2 полно а примеров нет...

Буду рад примеру, совету... Вообщем любой помощи

Спасибо

#32 Re: Laravel 5.x » Принудительно разлогинить определенного пользователя » 10.06.2015 18:23:28

а как указать id того кого мне надо logout!

дело в том что при нарушении правил сайта я баню пользователя(записывая ban = 1 в таблицу)
и уже в следующий раз когда полльзователь предпримет попытку входа на сайт я делаю Auth::logout(); в моммент авторизации...
то есть пользователь не может авторизоваться что мне и нужно....

однако проблема в том что даже если я запишу ban в таблицу то пользователь остается авторизованным на сайте и может продолжать нарушать правила итд итп....

то есть задача - человека нужно забанить - я записываю в таблицу ban = 1 и делаю logout() этого пользователя

как сделать что то наподобие Auth::logout($userid); ?

#33 Laravel 5.x » Принудительно разлогинить определенного пользователя » 10.06.2015 10:34:31

fagtr
Ответов: 5

Хочу реализовать возможность бана пользователей...

В случае бана необходимо разлогинить определенного пользователя принудительно...
Ткните пальцем пожалуйста как это сделать, а то что то пока не нашел решения(Auth::logout() я так понимаю разлогинит текущего пользоваьтеля)

#34 Re: Laravel 5.x » Кэширование в laravel » 25.05.2015 17:06:57

если мне память не изменяет то в laravel 5 - remember() из eloquent model выпилили теперь кеширование через Cache::remember(); делается

#36 Re: Laravel 5.x » Вывести из базы данные(топ лайков) many-to-many relationship » 18.05.2015 12:57:02

к сожалению это и было сделано чтобы хранить указатели на пользователей...
1) что бы знать лайкнул запись пользователь или нет
2) выводить текущий список пользователей кому понравилось  запись
3) и в профиле пользователя выводить все записи на которых пользователь поставил лайк...

рад был бы иначе реализовать... но иного решения не нашел...
Да согласен уже сейчас такие подходы ставят на колени сайт, но кеширование пока спасает

#37 Laravel 5.x » Вывести из базы данные(топ лайков) many-to-many relationship » 18.05.2015 11:09:01

fagtr
Ответов: 5

Всем привет...

Прошу помощи.

Хочу сделать вывод материалов где больше всего лайков
Лайки реализованы как отношение многие ко многим  - один лайк один пользователь

есть таблица blogs где все записи и users где хранятся пользователи и blog_user pivot таблица

хочу вывести записи где больше всего лайков(пользователей)

Зарранее спасибо

#38 Re: Laravel 5.x » Безопасное удаление из базы » 14.05.2015 06:04:20

Members::deleteuser(Auth::user()->id)

в моделе Members.php
public function deleteuser($userid){
      Members::whereUserId($userid)->delete();
}

#39 Re: Laravel 5.x » Мультиязычные URL » 13.05.2015 10:58:57

Route::get('aktualności', ['as'=>'ponews', 'uses'=>'NewsController@getNews']);

Route::group(['prefix' => 'en'], function() {
//все руты относяoиеся к en
       Route::get('news', ['as'=>'ennews', 'uses'=>'NewsController@getNews']);
});
и выйдет
     site.com/aktualności
    site.com/en/news

как то так

#40 Re: Laravel 5.x » Путь к контроллерам » 12.05.2015 13:14:18

честно не понимаю за чем оно надо(перенос всех контроллеров в другую папку)? чем Http\Controllers не устроил?

но если я логику верно понял то необходимо перенести контроллеры в другую папку или папки...

как сделал я - у меня есть сам сайт и его контроллеры лежат в Http\Controllers
однако есть и админка и для нее я сделал отдельную папку Http\Controllers\AdminControllers

так выглядит routes.php для админ
Route::get('/admin', ['uses' => 'AdminControllers\AdminController@index']);

что бы контроллер работал надо изменить namespace в самом контроллере(например в том же AdminController.php)
<?php namespace App\Http\Controllers\AdminControllers;

то есть для всех контроллеров в папке Http\Controllers\AdminControllers прописать <?php namespace App\Http\Controllers\AdminControllers;

более ничего не нужно править ни каких сервис провайдеров

#41 Re: Laravel 5.x » вопрос по валидации элемента в БД » 07.05.2015 16:28:48

Вообщем разобрался с проблемой
foreach ((array) $input['photo-items'] as $photoid)
            $rules['photo-'.$photoid] = 'integer|exists:photo,id';
так работает

#42 Laravel 5.x » вопрос по валидации элемента в БД » 07.05.2015 15:32:17

fagtr
Ответов: 1

вообщем нужно провалидировать массив элементов

то есть мне приходит массив с id-ками фотографий и задача проверить существуют ли записи в БД с такими id

из документации я так понял что есть
'email' => 'exists:staff,email,account_id,1'

сделал по образу и подобию однако если подсунуть id несуществующего элемента валидация успешно проходит а вот на этапе сохранения происходит ошибка(что и понятно)

foreach ((array) $input['photo-items'] as $photoid)
            $rules['photo-'.$photoid] = 'integer|exists:photo,id,'.$photoid;

в чем подвох?
спасибо)

#43 Re: Laravel 5.x » Как определить что пользователь находится на главной странице » 03.05.2015 20:00:54

Проблему решил если кому понадобиться то
$page = (int) \Input::get('page', 1);
        if ($page == 0 or $page == null) $page = 1;

и если мы находимся на первой странице то передаем во вьюху showslider со значение 1 или true
if ($page == 1) $showslider = true;

#44 Re: Laravel 5.x » Как определить что пользователь находится на главной странице » 03.05.2015 17:09:58

не решил проблемы...
да контроллер главной страницы есть однако как мне определить что пользователь на 2-й и последующих страницах

проблема в том даже если  я во вьюху передаю параметр need-slider, то при разбивке paginate(15) например - пользватель на главной странице переходит на 2ю страницу и слайдер продолжает показываться

#45 Laravel 5.x » Как определить что пользователь находится на главной странице » 02.05.2015 10:18:12

fagtr
Ответов: 3

Всем добрый день.

Хочу на главной странице сделать что то наподобие виджета-слайдера.
Проблема в том что я хочу чтобы он показывался только на главной странице и не показывался на любых других страницах

Отчасти я решил проблему -

function is_mainpage()
{
    $segments = explode('/', Request::path());
    foreach ($segments as $segment) {
        if ($segment == '') return true;
    }
    return false;
}

однако слайдер показывается и при пагинации на последующих страницах (?page=2 и тд), чего я не хочу
как мне определить что пользователь на главной странице сайте а не на какой другой

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