Laravel по-русски

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

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

#1 Re: Laravel 5.x » Как передать модель в action? » 16.05.2018 17:00:25

Валидация через класс реквеста в бест практис, а так можно как хочешь валидировать, способов много

#2 Re: Laravel 5.x » Как передать модель в action? » 16.05.2018 16:36:41

Валидация в своем, допустим, ArticleRequest наследнике обычного Request, тогда в store(ArticleRequest $request) будет, а модель автоматом заполняется только в некоторых случаях, когда данные из базы берутся, типа отображение страницы с редактируемой статьей.

#3 Re: Laravel 5.x » Как передать модель в action? » 16.05.2018 16:10:40

Отредактировал выше. И правильно сказали create() - отображать должен форму, а store(Request $request) сохранять данные. И введенные данные нужно проверять и корректировать, поэтому так не нужно делать, это усложнение.

#4 Re: Laravel 5.x » Как передать модель в action? » 16.05.2018 16:01:06

Зачем это делать? Чтобы не писать

public function store(Request $request, Article $article)
    {
$article->fill($request->input());

?

#6 Re: Laravel 5.x » Проблема с роутами » 02.05.2018 15:43:01

потому что uri одинаковый get 'users/{something}' у show и confirm

#8 Re: Laravel 5.x » Получение Post запроса с другого сайта » 13.04.2018 11:46:54

По идее ответ надо ловить перед curl_close. Вот тут у тебя что получается? $res=curl_exec($ch)
а вообще посмотри еще guzzle - http client

#9 Re: Laravel 5.x » Получение Post запроса с другого сайта » 13.04.2018 06:58:06

почему бы в function webhook(Request $request) не написать dd($request);
и посмотреть есть ли данные или проблема в записи файла?

#10 Re: Laravel 5.x » Пагинация массива Ларавелем » 06.12.2017 12:16:37

В vendor/laravel/framework/src/Illuminate/Pagination/PaginationServiceProvider.php есть

   Paginator::currentPathResolver(function () {
            return $this->app['request']->url();
        });

Этот ->url() определен в vendor/laravel/framework/src/Illuminate/Routing/RoutingServiceProvider.php

 
protected function registerUrlGenerator()
    {
        $this->app->singleton('url', function ($app) {
            $routes = $app['router']->getRoutes();

            // The URL generator needs the route collection that exists on the router.
            // Keep in mind this is an object, so we're passing by references here
            // and all the registered routes will be available to the generator.
            $app->instance('routes', $routes);

            $url = new UrlGenerator(
                $routes, $app->rebinding(
                    'request', $this->requestRebinder()
                )
            );

            $url->setSessionResolver(function () {
                return $this->app['session'];
            });

            // If the route collection is "rebound", for example, when the routes stay
            // cached for the application, we will need to rebind the routes on the
            // URL generator instance so it has the latest version of the routes.
            $app->rebinding('routes', function ($app, $routes) {
                $app['url']->setRoutes($routes);
            });

            return $url;
        });
    }

а дальше сам смотри, я застрял

#11 Re: Laravel 5.x » Пагинация массива Ларавелем » 06.12.2017 11:38:02

Там в доке по ссылке в комментах написано переопределить метод url() чтобы он формировал нужный адрес

#13 Re: Laravel 5.x » Проблема » 18.11.2017 11:03:46

в SiteController@index у тебя выводится view('welcome') то есть resources\views\welcome.blade.php - смотри его содержимое, оно наверняка не поменялось. А может просто не на тот проект заходишь из-за невнимательности

#15 Re: Laravel 5.x » Авторизация и Регистрация Одной формой » 14.11.2017 06:20:21

Наоборот, оставляешь только стандартную регистрацию, а в процессе проверяешь и логинишь

#16 Re: Laravel 5.x » Как правильно реализовать секцию портфолио? » 13.11.2017 17:46:05

У меня есть категории и статьи (вместо портфолио), таблица с категориями отдельно, в таблице статей внешний ключ на id таблицы категорий. Один ко многим.
Это из миграции change_articles_table:

$table->integer('category_id')->unsigned()->default(1);
$table->foreign('category_id')->references('id')->on('categories');

Это из модели Article

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

Это из модели категорий:

 public function articles(){
        return $this->hasMany('App\Article');
    }

#17 Re: Laravel 5.x » Ioc container » 11.11.2017 13:38:46

может как необязательный параметр с инициализацией типа

public function __construct(Shop $shop, Page $page = something)

#18 Re: Laravel 5.x » Что я сделал неправильно при переносе проекта с с ПК на ноутбук? » 06.11.2017 08:38:41

В исходном коде посмотри пути по ctrl+U в хроме, сравни в рабочем варианте и в нерабочем

<link rel="icon" type="image/x-icon" href="http://corporate:44443/pink/images/favicon.ico" />

И сравни как точка входа настроена, через .htaccess или в openserver в настройках доменов

#19 Re: Laravel 5.x » Что я сделал неправильно при переносе проекта с с ПК на ноутбук? » 05.11.2017 12:17:50

Пути к картинкам, css и js прописывать так примерно

script type="text/javascript" src="{{asset(env('THEME'))}}/js/jquery.js"

короче через хелпер asset()

#20 Re: Laravel 5.x » Ajax форма » 01.11.2017 13:55:47

Что-то по типу такого. И работать лучше с моделями,а не с фасадом DB

$article = Article::find($data['id']);
$article->name = $data['name'];
$article->img = $data['img'];
$article->text = $data['text'];
$user->articles()->save($article);

Я если честно сам только сегодня тему с аяксом и ларавель начал проходить/ Вот тут глянь, правда тут немного посложнее:
https://www.youtube.com/watch?v=tRcUybG … o2ldxWWtJR

#21 Re: Laravel 5.x » Ajax форма » 01.11.2017 13:32:33

или вот твоя переделанная у меня работает

<!doctype html>
<html lang="{{ app()->getLocale() }}">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <link rel="stylesheet" type="text/css" media="all" href="{{asset('css')}}/app.css" />




    <title>Форум</title>

    <!-- Fonts -->
    <link href="https://fonts.googleapis.com/css?family=Raleway:100,600" rel="stylesheet" type="text/css">

    <!-- Styles -->
    <style>
        html, body {
            background-color: #fff;
            color: #636b6f;
            font-family: 'Raleway', sans-serif;
            font-weight: 100;
            height: 100vh;
            margin: 0;
        }

        .full-height {
            height: 100vh;
        }

        .flex-center {
            align-items: center;
            display: flex;
            justify-content: center;
        }

        .position-ref {
            position: relative;
        }

        .top-right {
            position: absolute;
            right: 10px;
            top: 18px;
        }

        .content {
            text-align: center;
        }

        .title {
            font-size: 84px;
        }

        .links > a {
            color: #636b6f;
            padding: 0 25px;
            font-size: 12px;
            font-weight: 600;
            letter-spacing: .1rem;
            text-decoration: none;
            text-transform: uppercase;
        }

        .m-b-md {
            margin-bottom: 30px;
        }
    </style>
    {{--<script type="text/javascript" src="/js/jquery-3.2.1.min.js"></script>--}}
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
</head>
<body>

<div class="flex-center position-ref full-height">
    @if (Route::has('login'))
        <div class="top-right links">
            @auth
                <a href="{{ url('/home') }}">Home</a>
                @else
                    <a href="{{ route('login') }}">Login</a>
                    <a href="{{ route('register') }}">Register</a>
                    @endauth
        </div>
    @endif

    <div class="content">
        <form id="contactform" method="POST" >
            <input type="hidden" name="_token" value="{{ csrf_token() }}">
            <input type="hidden" name="_method" value="POST">

            <input type="text" name="username" placeholder="Введите ник" required />
            <input type="text" name="text" placeholder="Введите сообщение" required />
            <button type="submit">Отправить</button>

        </form>
        @foreach ($users as $user)
            {{ $user->text }}
        @endforeach

    </div>
</div>


<script>
    $(document).ready(function(){
        $('#contactform').on('submit', function(e){
            e.preventDefault();

            $.ajax({
                type: 'POST',
                url: '/sendmail',
                data: $('#contactform').serialize(),
                success: function(result){
                    console.log(result);
                }
            });
        });
    });
</script>
</body>
</html>

#22 Re: Laravel 5.x » Ajax форма » 01.11.2017 13:24:24

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

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<form id="contactform" method="POST" >
    {{--<input type="hidden" name="_token" value="{{ csrf_token() }}">--}}
    {{csrf_field()}}
    <input type="hidden" name="_method" value="POST">

    <input type="text" name="username" placeholder="Введите ник" required />
    <input type="text" name="text" placeholder="Введите сообщение" required />
    <button type="submit">Отправить</button>

</form>
@foreach ($users as $user)
    {{ $user->text }}
@endforeach
<script>
    $(document).ready(function(){
        $('#contactform').on('submit', function(e){
            e.preventDefault();

            $.ajax({
                type: 'POST',
                url: '/sendmail',
                data: $('#contactform').serialize(),
                success: function(result){
                    console.log(result);
                }
            });
        });
    });
</script>

#23 Re: Laravel 5.x » Ajax форма » 01.11.2017 08:40:24

у тебя jquery не подключен наверно, только версию сам выбирай
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>

#24 Re: Laravel 5.x » Ajax форма » 31.10.2017 20:12:48

Не нашел такой метод в доке - я ->with('users', $articles) использую

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