簡體   English   中英

在 Laravel 中將數據從視圖傳遞到控制器

[英]Passing data from view to controller in Laravel

我知道通過 url 傳遞記錄 ID 通常不是一個好主意,但我想知道如何在我的情況下避免它:

我的目標是在用戶儀表板上列出工作狀態並允許用戶調整狀態。

我創建我的視圖並使用會話將變量傳遞給它:

用戶控制器.php

public function getdashboard()
    {
       //reading the user information
    $arrPageData['user'] = Sentry::getUser();
       //reading the job interviews
    $arrPageData['jobInterviews'] = JobInterview::readCurrentInterviews($this->userID);

    return View::make('clients.dashboard', $arrPageData);
    }

這部分效果很好,我不在路線中使用記錄 ID。 我遍歷儀表板視圖中的 jobInterviews。 根據數據庫表中列出的狀態,我給用戶選項

查看文件:dashboard.blade.php(片段)

@foreach ($jobInterviews as $interviews)
    @if ($interviews->j == $job->id)
        <tbody>
        <tr>
        <td>
        {{$interviews->contact_name}}
        @if ($interviews->status == 'interview request accepted')

    <a href="#"  class="btn btn-danger btn-small" data-toggle="modal" data-target=".mymodal{{ $interviews->interview_id }}">Hire</a>
       @elseif ($interviews->status == 'hired')
        <button id="complete" class="btn btn-info btn-small">Mark Project Complete</button>
        @endif
        </td>
        <td>{{$interviews->status}} </td>
        </tr>
        </tbody>
         ...

我遇到的問題是要完成作業狀態更改,我正在調用該方法並傳入記錄 ID:

仍在dashboard.blade.php

<form action="../jobs/offer/{{$interviews->interview_id}}" method="post">

然后通過以下方式路由:

Route::post('/jobs/offer/{id}','JobController@jobOffer');

一切都如我所願,但從安全的角度來看,我認為我做得不對。 當從我遍歷過的數組中獲取數據時,除了使用路由中的記錄 ID 之外,是否有更好的方法來調用 jobOffer 方法並更改狀態?

在此先感謝您的幫助。

你可以試試這個:

{{ Form::open(array('action' => array('JobController@jobOffer', $interviews->interview_id))) }}
    <!-- Rest of the form fields -->
{{ Form::close() }}

這樣你就不需要手動添加csrf/_method輸入,默認情況下它的METHOD將是POST所以你可以省略它。

暫無
暫無

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

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