Laravel по-русски

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

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

#1 Re: Общий раздел » Чёт затупил с установкой последней версии » 16.11.2018 13:46:16

Я кажется догадался, в openserver стоит php 5.6 наверно это и есть причина

#2 Общий раздел » Чёт затупил с установкой последней версии » 16.11.2018 12:58:24

Concentum
Ответов: 1

Приветствую!

Пользуюсь дома openserver, a на работе homestead
Как в инструкции ставлю Laru:
"composer create-project --prefer-dist laravel/laravel blog"
Но на homestead ставится версия 5.7.13, а на OpenServer 5.4 говорит, что ставит из кэша

Думаю, ладно: composer clearchache
А он всё равно 5.4 ставит
В чём дело? как бороться?

#3 Re: Laravel 5.x » Объясните разницу между двумя вариантами одного маршрута » 20.11.2016 20:46:02

Супер форум, сто лет такого не видел, чтобы в воскресенье вечером задать вопрос и !!!!!!!!!!! барабанная дробь - тебе ответели!!!
Ещё раз спасибо.

#4 Re: Laravel 5.x » Объясните разницу между двумя вариантами одного маршрута » 20.11.2016 20:15:40

hzone пишет:

Уважаемый,
МАТОМ ТЕБЯ ПРОШУ ПОКАЖИ ВЕСЬ ФАЙЛ В ТЕГЕ [ CODE ]

Спасибо тебе друг, я понял свою ошибку middleware отсекало этот экшен

#5 Re: Laravel 5.x » Объясните разницу между двумя вариантами одного маршрута » 20.11.2016 18:50:45

AlexeyMezenin пишет:

Покажи пожалуйста PostController@postComment. И в чем проявляется "несрабатывание"?

        public function postComment(Request $request)
    {
        $comment = $request->all();
        $this->validate($request, [
            'text' => 'required',
        ]);
        $comment['status'] = 1;
        $comment['user_id'] = \Auth::user()->id;
        $comment = Comment::create($comment);
        Session::flash('flash_message', 'Comment successfully created!');
        return redirect('posts/'.$comment['post_id']."#".$comment['id']);
    }

Несрабатывание заключается в том , что экшен не вызывается, генерируется 404

#6 Laravel 5.x » Объясните разницу между двумя вариантами одного маршрута » 20.11.2016 17:36:56

Concentum
Ответов: 8

POST запрос публикации комментария

Route::post('posts/comment', 'PostController@postComment');

Route::post('posts/comment', function() {
...
});

Первый вариант не работает, а вот  второй срабатывает почему не пойму.
Объясните кто знает?

#7 Re: Laravel 5.x » Как указать порядок параметров в маршруте » 10.11.2016 11:15:59

tmanager пишет:
Concentum пишет:

Извините туплю,
а как из роут функции вызвать метод контроллера, редиректом?

Route::get('....', function ($id) {
    $ctrl= new Контроллер();
    return $ctrl->МетодКонтроллера($id);
});

Спасибо так всё работает!

#8 Re: Laravel 5.x » Как указать порядок параметров в маршруте » 10.11.2016 08:52:37

hzone пишет:

в роут функцию, внутри уже по параметрам вызывать нужный метод контроллера

Извините туплю,
а как из роут функции вызвать метод контроллера, редиректом?  или как то так?

Route::get('posts/tags/{tag}/page-{page}', function($tag, $page) {
      PostController::index($tag, $page);
})->where(['page' => '[1-9]+[0-9]*', 'tag' => '\w+']);

#9 Re: Laravel 5.x » Как указать порядок параметров в маршруте » 09.11.2016 22:35:05

Спасибо, я полагал, что раз параметры именованные то как то можно, ну нет так нет.

#10 Laravel 5.x » Как указать порядок параметров в маршруте » 09.11.2016 21:01:13

Concentum
Ответов: 8

Здравствуйте уважаемые знатоки laravel
Подскажите пожалуйста.

Есть маршруты:
Route::get('posts/page-{page}', 'PostController@index')->where(['page' => '[1-9]+[0-9]*']);
Route::get('posts/tags/{tag}/page-{page}', 'PostController@index')->where(['page' => '[1-9]+[0-9]*', 'tag' => '\w+']);

В контроллере PostController есть экшен  index определённый как:
public function index($tag = null,  $page = null)
   
Так вот в первом варианте маршрута параметр {page} в экшен приходит в переменной  $tag

Как явно указать порядок параметров?
Спасибо!

#11 Re: Laravel 5.x » Многие ко многим работают только в одну сторону » 07.11.2016 10:53:24

Вопрос снимается, сам дурак sad в таблице posts было определено поле tags (сначала хотел сделать по проще)

#12 Laravel 5.x » Многие ко многим работают только в одну сторону » 07.11.2016 10:39:44

Concentum
Ответов: 2

Помогите разобраться
есть 3 таблицы: posts, tags, post_tags
Они состоят в известных отношениях smile
Вот как определены отношения:
В модели post.php
public function tags()
{
    return $this->belongsToMany('App\Tag', 'post_tags');
}

В модели tag.php
public function posts()
{
    return $this->belongsToMany('App\Post', 'post_tags');
}

В контроллере PostController.php
$post = Post::findOrFail($id);
dd($post->tags); //Вот так вообще возвращает: ""
dd($post->tags()); //Вот так возвращает объект "BelongsToMany", но пустой

В контроллере TagController.php
$tag = Tag::whereRaw('url = ?', [$url])->firstOrFail();
dd($tag->posts); //Всё Ok как и ожидалось  возвращает объект "Collection"

В чём может быть загвоздка?
Подскажите пожалуйста!

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