2017-05-25 4 views
0

のイベントにIメソッドを持っており、それに私はいくつかのユーザのトラッキングコードを有するlaravel

public function settings(Request $request) 
    { 
     $id = Auth::id(); 
     $now = new DateTime(); 
     $page = 'Settings Page'; 
     $monitor = new Monitoring; 
     $users_full_names = Auth::user()->users_full_names; 
     $country = 'unseen'; 
     $device = $agent->device(); 
     $platform = $agent->platform(); 
     $browser = $agent->browser(); 
     $date = $now->format('Y-m-d H:i:s'); 
     $time = time(); 
     $ip = $request->ip(); 

     $data = compact('users_full_names','page','country','time','date','monitor','id', 'device', 'platform', 'browser', 'ip'); 

     Event::fire('simpleEvent', $data, $monitor); 

     $uid = Auth::id(); 
     $settings = Settings::where('user_id','=',Auth::id())->first(); 
     return view('text.settings',compact('settings')); 
    } 

を複数のオブジェクトを渡す方法は、イベント

Event::fire('simpleEvent', $data, $monitor);

にデータを渡し、このラインを有しています私が定義した

これは私がHandleExceptions-で、このエラーに

を取得するコードを実行すると、私はweb.php

Event::listen('simpleEvent', function($data,$monitor){ 
    $monitor->monitoring_user_id = Auth::id(); 
    $monitor->monitoring_user_names = $data->users_full_names; 
    $monitor->monitoring_page_visited = $data->page; 
    $monitor->monitoring_ip = $data->ip; 
    $monitor->monitoring_date_of_visit = $data->date; 
    $monitor->monitoring_time_of_visit = $data->time; 
    $monitor->monitoring_country = $data->country; 
    $monitor->monitoring_date = $data->date; 
    $monitor->monitoring_device = $data->platform; 
    $monitor->save(); 
    }); 

で持っているイベントコード> handleErrorの 非オブジェクトのプロパティを割り当てる(2「試みであります'、' /var/www/html/letextify/routes/web.php '、14、 配列(' data '=>' Radagast '、' monitor '=>'ログインに成功しました ')) web.php行14

これはlinです電子14

$monitor->monitoring_user_id = Auth::id();

これは、エラーを修正するにはどうすればよいdd($data)出力

array:10 [▼ 
    "users_full_names" => "Radagast" 
    "page" => "Successfully Logged In" 
    "country" => "unseen" 
    "time" => 1495705235 
    "date" => "2017-05-25 09:40:35" 
    "monitor" => Monitoring {#331 ▼ 
    #table: "monitoring" 
    #connection: null 
    #primaryKey: "id" 
    #keyType: "int" 
    +incrementing: true 
    #with: [] 
    #withCount: [] 
    #perPage: 15 
    +exists: false 
    +wasRecentlyCreated: false 
    #attributes: [] 
    #original: [] 
    #casts: [] 
    #dates: [] 
    #dateFormat: null 
    #appends: [] 
    #events: [] 
    #observables: [] 
    #relations: [] 
    #touches: [] 
    +timestamps: true 
    #hidden: [] 
    #visible: [] 
    #fillable: [] 
    #guarded: array:1 [▶] 
    } 
    "device" => false 
    "platform" => "Ubuntu" 
    "browser" => "Firefox" 
    "ip" => "100.208.40.100" 
] 

?です。

+0

'dd(Auth :: id())の出力は何ですか? – Mozammil

+0

これは、現在ユーザのユーザIDにログインしている11を出力します。 –

答えて

0

はあなたのコンパクトな配列の 'ID' を追加します。$ data配列

にIDを追加します。 $ data-> id

$data = compact('id', 'users_full_names','page','country','time','date','monitor','id', 'device', 'platform', 'browser', 'ip'); 

$ monitorは$ dataで利用できるようになります。だから、あなたは以下のようにあなたのコードを変更することができます。

変更火災コードに

Event::fire('simpleEvent', $data); 

変更を聞くコードも

認証:: IDを(コールする必要はありません)、再びそれがあるとして$ data-> idで利用可能な場合は、以下のコードを確認してください:

Event::listen('simpleEvent', function($data){ 

    $monitor = $data->monitor;       //check this line 

    $monitor->monitoring_user_id = $data->id;    //check this line 

    $monitor->monitoring_user_names = $data->users_full_names; 
    $monitor->monitoring_page_visited = $data->page; 
    $monitor->monitoring_ip = $data->ip; 
    $monitor->monitoring_date_of_visit = $data->date; 
    $monitor->monitoring_time_of_visit = $data->time; 
    $monitor->monitoring_country = $data->country; 
    $monitor->monitoring_date = $data->date; 
    $monitor->monitoring_device = $data->platform; 
    $monitor->save(); 
    }); 
+0

変更なし、エラーはありませんでした。 –

+0

@WolfEyes、私は私の答えを編集しました、私は 'ID'は$データで利用できなかったことを忘れました。最初の見出し「IDを$ data配列に追加する」を参照してください。 –

+0

変更なし、エラーはそのままです。 –

0

私はこのように解決しました

Event::listen('simpleEvent', function($data){ 
    $monitor = $data['monitor']; 
    $monitor->monitoring_user_id = $data['id']; 
    $monitor->monitoring_user_names = $data['users_full_names']; 
    $monitor->monitoring_page_visited = $data['page']; 
    $monitor->monitoring_ip = $data['ip']; 
    $monitor->monitoring_date_of_visit = $data['date']; 
    $monitor->monitoring_time_of_visit = $data['time']; 
    $monitor->monitoring_country = $data['country']; 
    $monitor->monitoring_date = $data['date']; 
    $monitor->monitoring_device = $data['platform']; 
    $monitor->save(); 
    }); 
関連する問題