मैं उपयोगकर्ता इनपुट के आधार पर एक पीडीएफ उत्पन्न कर रहा हूँ। मैं डेटाबेस को कॉल कर सकता हूं और सभी() का उपयोग करके सभी अनुबंध जानकारी प्राप्त कर सकता हूं। हालांकि, मैं केवल मूल्यों में से एक के लिए एक पीडीएफ उत्पन्न करना चाहता हूं। प्रत्येक अनुबंध में एक ऑटो वेतन वृद्धि आईडी होती है जिसका मैं उपयोग कर सकता हूं।

नियंत्रकों के बीच संवाद करने का सबसे अच्छा तरीका क्या है, इसलिए केवल मैं जिस अनुबंध का संदर्भ दे रहा हूं उसका उपयोग पीडीएफ बनाने के लिए किया जाता है?

पीडीएफ जेनरेट कंट्रोलर:

public function pdfview(Request $request)
    {
        $users = DB::table("users")->get();
        $contract = Contract::all();

        view()->share('users',$users);

        if($request->has('download')){
            // Set extra option
            PDF::setOptions(['dpi' => 150, 'defaultFont' => 'sans-serif']);
            $users = DB::table("users")->get();

            // pass view file
            $pdf = App::make('dompdf.wrapper');
            $pdf->loadHTML

            ($contract);


            return $pdf->stream();
        }
        return view('sell.contract');
    }

अनुबंध नियंत्रक (उपयोगकर्ता इनपुट)

public function store(Request $request)
{
    $contract = new Contract;
    $contract->buyer_first_name = $request->input('buyer_first_name');
    $contract->listing_id = $request->input('listing_id');
    $contract->save();
    return redirect()->route('generate-pdf')->with('contracts',$contract);
}
0
user9820353 22 मई 2018, 04:42

2 जवाब

सबसे बढ़िया उत्तर

अनुबंध id सत्र मेंस्टोर करना शायद आपका सबसे अच्छा दांव है . अगर आपको इसे केवल अगले अनुरोध पर उपयोग करने की आवश्यकता है, तो आप बस इसे फ्लैश कर सकते हैं (वास्तव में, ठीक यही redirect(..)->withInput(sessionKey, val)) करता है।

ऐसा कुछ:

अनुबंध नियंत्रक

public function store(Request $request)
{
    // ...
    $contract->save();
    session(['contract_id' => $contract->id]);
    return redirect()->route('generate-pdf');
}

या बस चमकती:

public function store(Request $request)
{
    // ...
    $contract->save();
    return redirect()->route('generate-pdf')->with('contract_id', $contract->id);
}

पीडीएफ जेनरेटर नियंत्रक

public function pdfview(Request $request)
{
    $contract = Contract::findOrFail(session('contract_id'));
    // ...
}
1
DevK 22 मई 2018, 04:52

मैं शायद पीडीएफ उत्पन्न करने के लिए एक स्थिर विधि के साथ एक पीडीएफ मॉडल वर्ग बनाउंगा।

class PDF
{
    public static function generatePDF($id, $isDownload)
    {
        // ...
    }
}

फिर आप संपर्क नियंत्रक से स्थिर विधि को कॉल कर सकते हैं और आवश्यक डेटा को पैरामीटर के रूप में पास कर सकते हैं।

public function store(Request $request)
{
    // ...

    \PDF::generatePDF($contract->id, $request->has('download'));

    // ...
}
0
KST 22 मई 2018, 18:11