iT邦幫忙

0

laravel 控制器使用另一個控制器方法

  • 分享至 

  • xImage

各位大神您好:

因為controller 無法extend多個controller
所以我在網路上看到controller 呼叫另一個controller的方法

// Include the other controller in this controller
use App\Http\Controllers\TasksController;
// Instantiate other controller class in this controller's method
$tasks_controller = new TasksController;
// Use other controller's method in this controller's method
$tasks_controller->postNotification($comment_content, $author);

但是是不是postNotification的方法如果寫這樣,view好像回傳不了,請問有甚麼方法嗎?

    $User = $this->GetUserData();
    //以上可以讀到值
        $binding=[
        'CNAME'=>$User,
        ];
       return view('submissionpaper.category', $binding); 

謝謝

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0

認真來說,控制器互相使用是一件很奇耙的事。
如果真有不同控制器會依需求而載入相應性的功能作用的話。

大多數來說是要搭配類似 service 的做法。或是lib 的做法。
由控制器來去呼叫應用。而不是控制器呼叫控制器處理的。

一般來說,控制器最好是不要讓它做太多事。最多就是接收值後對應,及最後輸出的決定。
應用程式方面則看是要用 service的做法。還是物件導向的做法來處理。

mayyola iT邦研究生 2 級 ‧ 2022-05-26 18:29:45 檢舉

service 是像webservice這樣嗎?
物件導向:如果把方法寫到最原本的controller 再讓其他controller extend 最原本的controller 我想到的只有這樣Q Q

一般流程是 「控制C」->「應用S」->「容器R」
當然這還沒考量到「中介」跟「事件」

而不要用 C1->C2的做法。
而是採用
C1 -> S1 S2
C2 -> S1 S3

你可以發現上面的例子,不同的控制器。有同時使用的S1
這樣子控制器就獨立下來了。且同樣的動作也不會需要再寫一份。

nishaknapp
iT邦見習生 ‧ 2022-05-26 20:27:12
【**此則訊息已被站方移除**】

我要發表回答

立即登入回答