2017-09-26 2 views
0

をlaravel私はこのシェア変数が

public function boot() 
{ 
    View::share('path', 'laravel/public'); 
} 

のようないくつかの変数を共有しているアプリのサービスプロバイダにlaravel5.5プロジェクト を持っている私は非常にイースリーすべてのビューブレードにアクセスすることができます。.. しかし、私は持っていますAjaxの検索 とそのsaparated JSから来るのファイルは、マスターレイアウトに

<script src="{{ asset('style//js/searchajax.js')}}"></script> 

を含め、これはsearchajax.jsコード

です
var path = '/laravel/public/'; 
$("#userSearchAjax").bind('change keyup',function(){ 
var userSearchAjax = $(this).val().trim(); 
if(userSearchAjax != '') 
{ 
    $.ajax({ 
     type:'GET', 
     url: '/laravel/public/userssearchajax', 
     data: {userSearchAjax:userSearchAjax}, 
     success:function(data){ 
      var result = "<tr class='info'><td>اسم المستخدم</td><td>الصورة</td></td><td>البريد الالكتروني</td></td><td>رقم الهاتف</td></td><td>الفرع</td></td><td>اعدادات</td></tr>"; 
      for(i = 0;i<data.length;i++) 
      { 
       result+= "<tr class='warning'><td>"+data[i]['user_name']+"</td>"; 
       result+= "<td>"; 
        result += "<a data-title='"+data[i]['user_name']+"' data-lightbox='image-1' target='_blank' href='"+path+"uploads/users/"+data[i]['id']+"/"+data[i]['id']+".jpg'><img alt='"+data[i]['user_name']+"' title='"+data[i]['user_name']+"' src='"+path+"/uploads/users/"+data[i]['id']+"/"+data[i]['id']+".jpg' class='thumb' /><br /></a>"; 
       result+= "</td>"; 
       result+= "<td>"+data[i]['user_email']+"</td>"; 
       result+= "<td>"+data[i]['user_phone']+"</td>"; 
       result+= "<td>"+data[i]['user_department']+"</td>"; 
       result+= "<td><a class='btn btn-success'>عرض</a>"; 
       result+= "<a class='btn btn-info'>تعديل</a></td></tr>"; 
      } 
      result += ""; 
      $("#search-result").html(result); 
     } 

    }); 
} 
else 
{ 
    $("#search-result").html(""); 
} 
}) 

私の問題私はlaravelでの認証とather・デフォルト・モデルのようなJSファイル でも共有モデル内の共有変数$パスにアクセスカントthatsの私は、JSファイル内でそれらにアクセスカント おかげ

+1

Laravelはサーバーサイドコードで、jsはクライアントサイドコードです。 PHPシンタックスで書かれたサーバーサイドコードをクライアント上のJSコードと共有することはできません。それらは完全に別個の2つのエンティティです。あなたは、あなたのレイアウトファイルJSスクリプトのコードをサーバー側からPHPを使用して注入することも、必要に応じてBladeテンプレート言語を使用することもできます。 – Andy

答えて

1
<script>  
    var path= {!! $path !!}; 
</script> 

私は考え変数名を "public_path"に変更することもお勧めします。必要な他のパスがあります。

この質問にも類似していた:あなたは(「パス」セッションを設定していて... laravel-5 passing variable to JavaScript

1

あなたはこの{{$path}}または{{session('path')}}のようなブレードを使用してコードを注入することによって、あなたのJSコードでパスを設定することができます)どこか正しいタイミングで正しい場所に。