2013-07-11 2 views
0

Я разрабатываю веб-сайт, на котором вы просматриваете элементы из амазонной рекламы продукта api. У меня есть окно поиска на просмотры/макеты/master.blade.php со следующим кодом:Отображение данных API xml на laravel 4 просмотра лезвия

{{ Form::open(array('url' => 'AmazonAPI/api.php', 'method' => 'GET')) }} 
     {{ Form::text('itemsearch', 'Search ...',) }} 
    {{ Form::submit('Search') }} 

Форма размещения в файл апи со следующим кодом:

<?php 
     if(isset($_GET['booksearch'])) { 
      /* Example usage of the Amazon Product Advertising API */ 
      include("amazon_api_class.php"); 

      $obj = new AmazonProductAPI(); 
      $result ='' ; 
      try 
      { 
       $result = $obj->searchProducts($_GET['booksearch'], 
               AmazonProductAPI::DVD, 
               "TITLE"); 
      } 
      catch(Exception $e) 
      { 
       echo $e->getMessage(); 
      } 

      print_r($result->Items); 


    ?> 

После поиска вы переходите к файлу и отображает действительные данные xml с amazon. Но, как вы можете видеть, файл api является файлом php в моей папке public/assets/AmazonAPI, поэтому я не могу расширить свои макеты при стилизации xml. Пожалуйста, дайте мне знать, как я должен включить свой код API в/поиски/зрения лопастной просмотры index.blade.php таким образом, что я могу продлить раскладку на него, как:

@extends('layouts.mylayout') 

@section('content') 
//the api code goes here 
@stop 

Кроме того, дайте мне знать правильный путь Я должен открыть форму.

+0

, что именно вы пытаетесь сделать? вы можете уточнить? –

+0

Я только что редактировал вопрос. Пожалуйста, дайте мне знать, где вам нужно уточнить. – TechyTimo

+0

Во-первых, почему вы помещаете коды api в папку 'public/assets'? Либо вы не можете правильно объяснить свою проблему, либо я не могу понять. Что касается моего понимания, вы можете вызвать этот файл в любой из ваших функций контроллера и вернуть представления с желаемым результатом. –

ответ

1

Я проведу вас, чтобы сделать это в простой и более Laravel Путь. , поэтому вы можете создать папку libraries под каталогом app и разместить свои файлы api apazon в папке libraries.

Теперь в вашем composer.json добавить "app/your_amozon_api_library_folder_name" в classmap, что-то вроде

"autoload": { 
    "classmap": [ 
     "app/commands", 
     "app/controllers", 
     "app/models", 
     "app/your_amozon_api_library_folder_name", 

Теперь дампа автозагрузки с помощью composer dump-autoload or php composer.phar dump-autoload Теперь вы amozon API, которые загружены для глобального использования.

Предположим, у вас есть HomeController с методом поиска, теперь поставить вас API коды метод поиска,

public function search(){ 
    if(isset($_GET['booksearch'])) { 
     /* Example usage of the Amazon Product Advertising API */ 
     //include("amazon_api_class.php"); no need to include 

     $obj = new AmazonProductAPI(); 
     $result ='' ; 
     try 
     { 
      $result = $obj->searchProducts($_GET['booksearch'], 
              AmazonProductAPI::DVD, 
              "TITLE"); 
     } 
     catch(Exception $e) 
     { 
      echo $e->getMessage(); 
     } 

     //print_r($result->Items); 
     return View::make('your view name')->with('items',$result->Items); 
} 
} 
+0

спасибо, чтобыло. – TechyTimo