2015-05-28 17 views
5

में काम नहीं कर मैं एक ऐप्स जहाँ उपयोगकर्ता एक रूप है जिसमें एक वेब एपीआई से कुछ डेटा प्राप्त करने के लिए एक सोप विनिमय करता है प्रस्तुत किया है। एक निश्चित समय में बहुत अधिक अनुरोध नहीं हैं, तो थ्रॉटल सर्वर का उपयोग इनकार करते हैं। मैं इस के लिए एक कस्टम त्रुटि दृश्य throttle.blade.php जो resources\views\pages अंतर्गत सहेजा जाता है कहा जाता है बना दिया है।पुनर्निर्देशन रूट करने के लिए Laravel 5

Route::get('throttle', '[email protected]'); 

PagesController.php में मैं भी उतना ही प्रासंगिक समारोह जोड़ लिया है::

:

public function throttleError() { 
    return view('pages.throttle'); 
} 

यहाँ SoapWrapper वर्ग मैं सोप आदान-प्रदान करने के लिए बनाया गया है routes.php में मैं के रूप में मार्ग नाम दिया

<?php namespace App\Models; 

use SoapClient; 
use Illuminate\Http\RedirectResponse; 
use Redirect; 

class SoapWrapper { 

public function soapExchange() { 

    try { 
     // set WSDL for authentication 
     $auth_url = "http://search.webofknowledge.com/esti/wokmws/ws/WOKMWSAuthenticate?wsdl"; 

     // set WSDL for search 
     $search_url = "http://search.webofknowledge.com/esti/wokmws/ws/WokSearch?wsdl"; 

     // create SOAP Client for authentication 
     $auth_client = @new SoapClient($auth_url); 

     // create SOAP Client for search 
     $search_client = @new SoapClient($search_url); 

     // run 'authenticate' method and store as variable 
     $auth_response = $auth_client->authenticate(); 

     // add SID (SessionID) returned from authenticate() to cookie of search client 
     $search_client->__setCookie('SID', $auth_response->return); 

    } catch (\SoapFault $e) { 
     // if it fails due to throttle error, route to relevant view 
     return Redirect::route('throttle'); 
    } 
} 
} 

सब कुछ तब तक काम करता है जब तक कि मैं थ्रॉटल सर्वर द्वारा अनुमत अनुरोधों की अधिकतम संख्या तक नहीं पहुंच जाता, जिस बिंदु पर इसे एम प्रदर्शित करना चाहिए वाई कस्टम व्यू, लेकिन यह त्रुटि प्रदर्शित करता है:

InvalidArgumentException in UrlGenerator.php line 273: 
Route [throttle] not defined. 

मुझे यह नहीं पता कि यह क्यों कह रहा है कि मार्ग परिभाषित नहीं किया गया है।

उत्तर

11

आप केवल एक रास्ता अपने मार्ग के लिए नाम निर्धारित नहीं किया। आप इस तरह से अपने मार्ग को परिभाषित कर सकते हैं:

Route::get('throttle', ['as' => 'throttle', 'uses' => '[email protected]']); 

विधि के पहले भाग मार्ग आपके मामले में आप इसे /throttle तरह परिभाषित का मार्ग है। एक दूसरा तर्क के रूप में आप विकल्प है जिसमें आप मार्ग (as) और कॉलबैक (इस मामले नियंत्रक में) की अनूठी नाम निर्दिष्ट कर सकते हैं के साथ सरणी पारित कर सकते हैं।

आप documentation में मार्गों के बारे में अधिक पढ़ सकते हैं।

संबंधित मुद्दे