簡體   English   中英

如何從Laravel中的其他控制器訪問控制器?

[英]How to access controller from other controller in Laravel?

也許我在一起做錯了。 但是我正在Laravel中做我的第一個MVC。 這是我的設置。

該應用程序將從varoius來源下載數據並保存到數據庫以供輸出。

我有兩個控制器。 一種將數據保存到數據庫,另一種從instagram下載數據。 在Instagram控制器中。 我目前只是輸出數據。 我想使用我的保存控制器來保存它。

Instagram控制器:

class InstagramController extends BaseController {

public function read($q)
{
    $client_id = 'ea7bee895ef34ed08eacad639f515897';

    $uri = 'https://api.instagram.com/v1/tags/'.$q.'/media/recent?client_id='.$client_id;
    $response = $this->sendRequest($uri);
    print_r(json_decode($response));
    //return json_decode($response);
}

public function sendRequest($uri){
    $curl = curl_init($uri);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
    $responses = curl_exec($curl);
    $responses = json_decode($responses);
    curl_close($curl);
    echo '<pre>';
    foreach ($responses->data as $data) {
        //0/{postid}/{url}/{author}/{content}
        $type = 0;
        $postid = $data->id;
        $url = $data->link;
        $author = $data->user->username;
        $content = $data->images->standard_resolution->url;


        echo $type.' '.$postid.' '.$url.' '.$author.' '.$content.'<br />';
    }
    //var_dump($responses->data);
    echo '</pre>';
    //return $response;
}

}

保存控制器:

class PostController extends BaseController {
public function save($type, $postid, $url, $author, $content)
{
    $post = new Post;
    $post->type = $type;
    $post->postid = $postid;
    $post->url = $url;
    $post->author = $author;
    $post->content = $content;
    try
    {
    $post->save();
    echo $post;
    }catch(Exception $e){
        throw new Exception( 'Already saved', 0, $e);
    }
   // 
}
}

控制器被映射到動作(一條路線執行一項動作)。 您可以通過調用其路由來呼叫控制器。

因為獲取圖像並保存圖像是同一操作(即,相同的路線)的一部分,所以我建議您將代碼移至庫或幫助程序中(或者為什么不將其移至模型中,因為您正在檢索和保存數據)

無論如何,我不知道為什么要在控制器中這樣做。 控制器通常在模型和視圖之間執行操作。 從Web服務中獲取數據更多地屬於模型而不是控制器。 實際上,我真的建議您將代碼移到庫中,以便以后重用。 您的控制器僅負責調用庫的read方法來讀取圖像,然后使用模型將其保存在本地。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM