Задать вопрос
Ответы пользователя по тегу Laravel
  • Как Laravel ускоряет создание сайта?

    fullstackru
    @fullstackru
    Если бы вы хоть раз попробовали написать с нуля какой-нибудь фреймворк и на его базе MVC-приложение, то не задавали бы таких вопросов. Ядро Laravel - это сила, а код - шедевр. В связи с этим, рекомендую вам для начала поучить PHP, прежде чем сравнивать процедурный стиль программирования с ООП. В противном случае, вам будет тяжело осознать то, как Laravel ускоряет разработку веб-приложений, т. к. сравнивать вам пока не с чем.
    Ответ написан
    Комментировать
  • Как вывести slug категории в посте Laravel?

    fullstackru
    @fullstackru Автор вопроса
    Я сделал гораздо проще:

    public function posts()
    {
        return $this->morphedByMany('App\Post', 'category_able');
    }


    $category = App\Category::first();
    $category->posts();


    Route::get("/{$category->slug}/{slug?}", 'BlogController@post')->name('post');


    {{ route('post', $post->slug) }}
    Ответ написан
    Комментировать
  • Как сгенерировать RSS-ленту для Laravel?

    fullstackru
    @fullstackru Автор вопроса
    Я нашел решение для sitemap, по такому же принципу была исправлена ошибка для RSS-ленты. {{ Request::header('Content-Type : text/xml') }} - устанавливает нужный тип содержимого.

    Было:

    <?php
    header("Content-Type: text/xml;charset=iso-8859-1"); // Здесь была ошибка
    echo '<?xml version="1.0" encoding="UTF-8"?>';
    ?>
     
    <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
        @foreach ($posts as $post)
            <url>
                <loc>{{ url($post->slug) }}</loc>
                <lastmod>{{ $post->updated_at->tz('GMT')->toAtomString() }}</lastmod>
                <changefreq>monthly</changefreq>
                <priority>1</priority>
            </url>
        @endforeach
    </urlset>


    Исправил:

    {{ Request::header('Content-Type : text/xml') }}
    <?php echo '<?xml version="1.0" encoding="UTF-8"?>';?>
     
    <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
        @foreach ($posts as $post)
            <url>
                <loc>{{ url($post->slug) }}</loc>
                <lastmod>{{ $post->updated_at->tz('GMT')->toAtomString() }}</lastmod>
                <changefreq>monthly</changefreq>
                <priority>1</priority>
            </url>
        @endforeach
    </urlset>


    Также, если вы хотите использовать поддержку PHP внутри XML-файлов - можно добавить следующую строчку в файл .htaccess:

    AddType application/x-httpd-php .php .xml
    php_flag short_open_tag off


    Еще можно указать тип в самом контроллере:

    public function index()
        {
          $articles = Article::all()->first();
          $categories = Category::all()->first();
          $questions = Question::all()->first();
          $tags = Tag::all()->first();
    
          return response()->view('sitemap.index', [
              'articles' => $articles,
              'categories' => $categories,
              'questions' => $questions,
              'tags' => $tags,
          ])->header('Content-Type', 'text/xml');
        }


    Но я сделал немного попроще:

    public function sitemap() {
    	$articles = DB::table('articles')->orderBy('id', 'desc');
    
    	return response()->view('sitemap', [
    		'articles' => $articles,
    	])->header('Content-Type', 'text/xml');
    }
    Ответ написан
    Комментировать