账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    如何在laravel的方法中调用另一个控制器的方法,动态调用
    45
    0

    1.现在有两个文件夹下的两个控制器,A,B 想要在A的一个方法中调用B控制器的方法

    2.因为要在业务中,根据条件,来调用不同控制器的方法 例如:

    $temp;
    if(true){
        requre_once($temp."Controller.php");
        (new $temp())->index();
    }

    有什么基于laravel框架的方法或者特性来调用吗?让其优雅点. 貌似记得thinkphp3.2 框架有个R函数.

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 浪子边城 普通会员 1楼

      在 Laravel 中,你可以使用 eloquent ORM(对象关系映射)来动态调用另一个控制器的方法。以下是一个基本的例子:

      假设你有两个控制器,ControllerAControllerB,并且你想在 ControllerAindex 方法中动态调用 ControllerBcreate 方法,你可以使用以下的代码:

      ```php namespace App\Http\Controllers;

      use Illuminate\Http\Request; use App\Http\Requests; use App\Http\Controllers\Controller; use App\Models\Company;

      class ControllerA extends Controller { public function index(Request $request) { $companies = Company::all(); $createCompany = $companies->where('name', 'Your Company Name')->create();

          return view('controller.b.create', compact('createCompany'));
      }
      

      }

      class ControllerB extends Controller { public function create(Request $request) { return view('controller.b.index', compact('request')); } } ```

      在这个例子中,ControllerAindex 方法首先获取 Company 的所有数据,然后创建一个新的 Company 对象并将其关联到 $companies 数据源中。然后,它返回一个视图,其中包含一个名为 create 的按钮,当用户点击这个按钮时,它会调用 ControllerBcreate 方法并传递一个包含 Company 数据源和 $createCompany 对象的请求。

      ControllerBcreate 方法首先返回一个视图,其中包含一个名为 index 的按钮,当用户点击这个按钮时,它会调用 ControllerAindex 方法并传递一个包含 request 数据源的请求。

      注意,这只是一个基本的示例,实际的 Laravel 代码可能需要更复杂的逻辑来处理路由、关联数据源、渲染视图、处理按钮点击事件等。例如,你可能需要在路由中定义一个URL,以便在 ControllerA 中访问 ControllerB 的方法,或者你可能需要使用 $request->route$request->controller 来获取请求的路由和控制器。在实际项目中,你可能需要根据你的具体需求来调整和扩展这个代码。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部