gpt4 book ai didi

laravel - 如何从 View 中调用 Controller - Laravel

转载 作者:行者123 更新时间:2023-12-04 22:46:49 25 4
gpt4 key购买 nike

我有一个列出时间表的 View 。

在那个 View 上,每个时间表都有一个可交付成果字段......我有一个 DeliverableController,它有一个 Action “DropdownList”,它调用模型并获取可交付成果列表并将它们推送到可交付成果 View (它只是创建一个下拉框) .

当我遍历我的时间表时,我想获得 DeliverableController/DropdownList 的响应并将其放在我的可交付字段应在时间表上的位置。

  • A) 有没有办法从 View 中获取 Controller 的响应
  • B) 有没有办法从 Controller 方法中获取 Controller 的响应,以便我可以将结果推送到 View ?

  • 到目前为止我的代码是:

    交付 Controller :
    class DeliverableController extends BaseController {   
    private $deliverableRepository;

    function __Construct( IDeliverableRepository $deliverableRepo )
    {
    $this->deliverableRepository = $deliverableRepo;
    }

    ...

    public /* */ function DropdownList()
    {
    $deliverables = $this->deliverableRepository->Deliverables();
    return View::make( 'Deliverable/_DropdownList', array( "Model" => $deliverables ) );
    }
    }

    可交付成果/_DropdownList View :
    <?php
    foreach( $Model as $item )
    {
    ?>
    <select name="">
    <option value = "<?php echo $item->ID; ?>"><?php echo $item->Title; ?></option>
    </select>
    <?php
    }
    ?>

    时间表 Controller :
    class TimesheetController extends BaseController {      
    private $timesheetRepository;

    function __Construct( ITimesheetRepository $timesheetRepo )
    {
    $this->timesheetRepository = $timesheetRepo;
    }

    ...

    // [HttpGET]
    public /* */ function GetCreate()
    {
    return View::make( 'Timesheet/Create' );
    }

    // [HttpPOST]
    public /* */ function PostCreate()
    {
    // To do
    }
    }

    时间表/创建
    @extends( 'layout' )

    @section( 'Styles' )
    <link href="<?php echo Request::root(); ?>/Styles/Timesheet.css" rel="stylesheet">
    @stop

    @section( 'Title' )
    Create timesheets
    @stop

    @section( 'Content' )

    <form role="form">
    <table id="TimesheetTable" class="table">
    <thead>
    <tr>
    <th>Project/Deliverable</th>
    ...
    </tr>
    </thead>
    <tfoot>
    <tr>
    <td></td>
    ...
    </tr>
    </tfoot>
    <tbody>
    <?php
    for( $a = 0; $a < 18; $a++ )
    {
    ?>
    <tr id='row<?php echo $a; ?>'>
    <td><?php /* Get response from DeliverableController/DropdownList */ ?></td>...
    </tr>
    <?php
    }
    ?>
    </tbody>
    </table>
    @stop

    @section( 'Scripts' )
    <script src="<?php echo Request::root(); ?>/Scripts/Timesheet.js"></script>
    @stop

    请注意 /* 从 DeliverableController/DropdownList 获取响应 */

    最佳答案

    如果您想从 View 中调用 Controller ,您可以使用 IOC 容器

        App::make(//ControllerName)->//methodName(//parameters);

    例子:
        App::make("UserController")->displayUsers(array('page_id' => 55));

    关于laravel - 如何从 View 中调用 Controller - Laravel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22151822/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com