BG Development


  Reply to this topicStart new topicStart Poll

> Undefined variable: lang след добавяне на header, Laravel
Gluhiqdev
Публикувано на: 18-04-2020, 10:31
Quote Post



Име:
Група: Потребител
Ранг: Новопостъпил

Мнения: 14
Регистриран на: 13.04.19



Здравейте, приятели!

Имам малък CMS който използва Laravel и преди три дни към него инсталирах форумната система на Riari от Github.

https://github.com/Team-Tea-Time/laravel-forum

Всичко работеше нормално докато не се опитах да интегрирам моят header.blade.php в vendor/forum/master.blade.php

Когато заредя форума в браузъра излиза грешката: Undefined variable: lang

Вече 3 дни се опитвам да разреша проблема но безуспешно.

Грешката е на 35-ти ред от header.blade.php

CODE
<?php
use Illuminate\Support\Facades\Route;
$currentPaths= Route::getFacadeRoot()->current()->uri();    
$url = URL::to("/");
$setid=1;
       $setts = DB::table('settings')
       ->where('id', '=', $setid)
       ->get();

if($currentPaths=="/")
{
$activemenu = "/";
}
else
{
 $activemenu = $currentPaths;
}



if($activemenu == "/"){ $active_home = "active"; } else { $active_home =""; }



if($activemenu == "blog" or $activemenu == "blog/{id}") { $active_blog = "active"; } else { $active_blog = ""; }

if($activemenu == "contact-us") { $active_contact = "active"; } else { $active_contact = ""; }

if($activemenu == "register"){ $active_register = "active"; } else { $active_register = ""; }
if($activemenu == "dashboard" or $activemenu == "my-comments"){ $active_dashboard = "active"; } else { $active_dashboard = ""; }


$colname = "main-menu";
   $pages_cnt = DB::table('pages')
               ->where('lang_code', '=', $lang)
               ->whereRaw('FIND_IN_SET(?,menu_position)', [$colname])
               ->orderBy('menu_order','asc')
               ->count();

if(Auth::check()) {
      $log_id = Auth::user()->id;

      $cart_views_count = DB::table('product_orders')

       ->where('user_id', '=', $log_id)
       ->where('status', '=', 'pending')

       ->count();


      $cart_views = DB::table('product_orders')

       ->where('user_id', '=', $log_id)
       ->where('status', '=', 'pending')

       ->get();

       $user_wallet = Auth::user()->wallet;

       }
       else
       {
       $cart_views_count = 0;
       $cart_views = "";
       $user_wallet = 0;
       }

 $default = DB::table('avig_language')
                 ->where('lang_default','=',1)
                  ->get();


$default_cnt = DB::table('avig_language')
                 ->where('lang_default','=',1)
                  ->count();
if(!empty(Cookie::get('lang'))){ $lang = Cookie::get('lang'); } else { if(!empty($default_cnt)){ $lang = $default[0]->lang_code; } else { $lang = "en"; } }        

$language = DB::table('avig_language')
                   ->where('lang_status', '=', 1)


                   ->orderBy('id','asc')
                   ->get();

$language_cnt = DB::table('avig_language')
                   ->where('lang_status', '=', 1)


                   ->orderBy('id','asc')
                   ->count();                  

$language_single = DB::table('avig_language')
                   ->where('lang_status', '=', 1)
                   ->where('lang_code', '=', 'en')
                   ->orderBy('id','asc')
                   ->get();

$language_single_cnt = DB::table('avig_language')
                   ->where('lang_status', '=', 1)
                   ->where('lang_code', '=', 'en')
                   ->orderBy('id','asc')
                   ->count();


$check_sett_trans = DB::table('settings_meta')
               ->where('sett_meta_id', '=' , 35)
               ->where('sett_meta_key', '=' , "site_translation")

               ->count();
       if(!empty($check_sett_trans))
       {

           $sett_meta_seo = DB::table('settings_meta')
               ->where('sett_meta_id', '=' , 35)
               ->where('sett_meta_key', '=' , "site_translation")

               ->count();

           if(!empty($sett_meta_seo))
           {  
          $sett_meta_chat =  DB::table('settings_meta')
               ->where('sett_meta_id', '=' , 35)
               ->where('sett_meta_key', '=' , "site_translation")

               ->get();
           $site_translation = $sett_meta_chat[0]->sett_meta_value;
           }
           else
           {
           $site_translation = "";
           }  
       }
       else
       {
         $site_translation = "";
       }

?>


В платформата няма абсолютно никакви грешки с този header.blade.php но когато добавя @include('header') в стила на форума ми изкарва грешката.

Някой има ли идея как да разреша този проблем?
PMEmail Poster
Top
Gamma Goblin
Публикувано на: 18-04-2020, 11:07
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 3789
Регистриран на: 21.02.18



най-добре е да се откажеш от ПХП, даже нодеджиес е по-добре


--------------------
https://ncase.me/trust-bg/
---
Misanthropy is the general hatred, dislike, distrust or contempt of the human species or human nature. A misanthrope or misanthropist is someone who holds such views or feelings.
---
INTJ’s are good at being very good at everything
---
"Чувството за вина дето искаш да ни го вмениш, може да си го навиеш на руло и да си го пъхнеш отзад." - stewe
PMEmail PosterUsers Website
Top
escapeboy
Публикувано на: 18-04-2020, 11:19
Quote Post



Име: Никола Кацаров
Група: Потребител
Ранг: Редовен член

Мнения: 429
Регистриран на: 04.12.04



Това ако ти е header.blade.php - трий! Не се шегувам! Тоя код изобщо не му е мястото там.
vendor/forum/master.blade.php няма в пакета който си посочил, което значи, че ти си го направил... в vendor/ папка не трябва да пипаш.

Схемата е следната:
Route -> Controller (взима си данните от модел-а, обработва си променливите) -> подава данните на view-то.

Ако имаш в view/layouts/master.blade.php в него имаш header и footer и на мястото където ще ти е съдържанието слагаш @yield('content')

След това в view/pages/forum.blade.php имаш:
CODE

@extends('layouts/master')
@section('content')
My forum content index for language {{$lang}}
@foreach($forums as $forum)
 {{$forum->title}}
@endforeach
@endsection


В ForumController имаш
CODE

public function index(){
  $data['forums'] = Forum::all();
  $data['lang'] = 'bg'
 
  return view('pages.forum', $data);
}


Препоръчвам ти да започнеш с нещо по-простичко като Todo app, за да видиш как работи Laravel и като цяло MVC


--------------------
PMEmail PosterUsers Website
Top
Gluhiqdev
Публикувано на: 18-04-2020, 13:10
Quote Post



Име:
Група: Потребител
Ранг: Новопостъпил

Мнения: 14
Регистриран на: 13.04.19



QUOTE (escapeboy @ 18-04-2020, 11:19)
Това ако ти е header.blade.php - трий! Не се шегувам! Тоя код изобщо не му е мястото там.
vendor/forum/master.blade.php няма в пакета който си посочил, което значи, че ти си го направил... в vendor/ папка не трябва да пипаш.

Схемата е следната:
Route -> Controller (взима си данните от модел-а, обработва си променливите) -> подава данните на view-то.

Ако имаш в view/layouts/master.blade.php в него имаш header и footer и на мястото където ще ти е съдържанието слагаш @yield('content')

След това в view/pages/forum.blade.php имаш:
CODE

@extends('layouts/master')
@section('content')
My forum content index for language {{$lang}}
@foreach($forums as $forum)
 {{$forum->title}}
@endforeach
@endsection


В ForumController имаш
CODE

public function index(){
  $data['forums'] = Forum::all();
  $data['lang'] = 'bg'
 
  return view('pages.forum', $data);
}


Препоръчвам ти да започнеш с нещо по-простичко като Todo app, за да видиш как работи Laravel и като цяло MVC

Извинявам се за това че съм пропуснал да спомена че използвам frontend-а като отделен пакет.

Това е fronend-а на форума
https://github.com/Riari/laravel-forum-frontend


Файловете на frondend се намират в тази директория:
C:\xampp\htdocs\local\resources\views\vendor\forum


Копирах файла header.blade.php от папката views след което го поставих в папката със стиловете на форума:
C:\xampp\htdocs\local\resources\views\vendor\forum

След което отворих master.blade.php и след тага <body> написах @include('header')

и след като презаредя форума в браузъра ми изкарва следната грешка:
CODE
Undefined variable: lang (View: C:\xampp\htdocs\local\resources\views\header.blade.php) (View: C:\xampp\htdocs\local\resources\views\header.blade.php) (View: C:\xampp\htdocs\local\resources\views\header.blade.php)


Платформата я купих от CodeCanyon за да разбера се докосна до Laravel и сега просто искам да и добавя форум и да експериментирам с нея.
PMEmail Poster
Top
escapeboy
Публикувано на: 18-04-2020, 19:29
Quote Post



Име: Никола Кацаров
Група: Потребител
Ранг: Редовен член

Мнения: 429
Регистриран на: 04.12.04



Добре, остава да махнем този код от header.blade.php icon_smile.gif
Всичко което е $promenliva трябва да дойде от контролера.
В този случай $lang е глобален и може да използваш config('app.locale')

Други варианти:
https://laravel.com/docs/5.6/views#sharing-...-with-all-views

или https://laravel.com/docs/5.6/views#view-composers

Разгледай това: https://laracasts.com/
Мисля, че основите са безплатни.


--------------------
PMEmail PosterUsers Website
Top
Gluhiqdev
Публикувано на: 18-04-2020, 22:03
Quote Post



Име:
Група: Потребител
Ранг: Новопостъпил

Мнения: 14
Регистриран на: 13.04.19



QUOTE (escapeboy @ 18-04-2020, 19:29)
Добре, остава да махнем този код от header.blade.php icon_smile.gif
Всичко което е $promenliva трябва да дойде от контролера.
В този случай $lang е глобален и може да използваш config('app.locale')

Други варианти:
https://laravel.com/docs/5.6/views#sharing-...-with-all-views

или https://laravel.com/docs/5.6/views#view-composers

Разгледай това: https://laracasts.com/
Мисля, че основите са безплатни.

Благодаря ти, почистих header.blade.php вече остана единствено html кода и наименованията от езиковият пакет си ги зареждам чрез {!! $name !!}

Писах на автора в CodeCanyon да почисти кода от излишните неща и утре започвам серията от уроци в Laracasts но колкото повече се занимавам в Laravel толкова по-приятен ми става.

Има купища пакети и информация за него и почти всичко може да се инсталира само с една команда в composer.
PMEmail Poster
Top
1 потребители преглеждат тази тема в момента (1 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2019 | BG Development | All Rights Reserved
RSS 2.0