मैं एपीआई के माध्यम से डेटाबेस में डेटा अद्यतन करने के लिए कोशिश कर रहा हूँ, लेकिन यह 404 त्रुटि देता है डाकिया में नहीं मिला।

एपीआई.php

    // PUT update citizen from NIC
Route::put('updateCitizen/{nic}',[CitizensController::class, 'updateCitizen'] );

नियंत्रक.php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\Citizen as ModelsCitizen;
use DB;
use Illuminate\Support\Facades\DB as FacadesDB;

class CitizensController extends Controller
{
    public function updateCitizen(Request $request, $nic)
    {

        $citizen = FacadesDB::table('citizens')
            ->where('nic', '=', $nic)
            ->update(['options->enabled', true]);

        return response()->json($citizen);
    }
}
1
Lakindu Kariyawasam 19 अप्रैल 2021, 16:49

4 जवाब

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

क्या आप निम्नलिखित के रूप में एपीआई मार्ग बदल सकते हैं?

Route::put('update-citizen/{nic}',[CitizensController::class, 'updateCitizen']);

और निम्न आदेश चलाएँ।

php artisan route:cache

और निम्न URL के साथ प्रयास करें - {baseUrl}/api/update-citizen/{an-existing-nic}

0
Iyathurai Iyngaran 19 अप्रैल 2021, 17:23

आपके कंट्रोलर पुट के ऊपर:

use Illuminate\Support\Facades\DB;

फिर उपयोग करें:

$citizen = DB::table('citizens')
         ->where('nic',$nic)
         ->update(['options->enabled', true]);
-1
Ahsan Zaman 19 अप्रैल 2021, 16:53

समस्या अद्यतन क्वेरी में थी। क्वेरी में जहां,

->update(['options->enabled', true]);

के रूप में बदलना होगा,

    ->update($request->all());

यूरी में सभी vlaues को डेटाबेस कॉलम में अपडेट करने के लिए।

0
lakindu kariyawasam 19 अप्रैल 2021, 18:15

आप एक एपीआई संसाधन दृष्टिकोण का उपयोग क्यों नहीं करते हैं, आईएमओ को लिखने के लिए और अधिक तेज़ दिखता है।

https://laravel.com/docs/8.x/eloquent-resources

अन्यथा जहां क्लॉज के लिए स्ट्रिंग ऑपरेटर के रूप में अधिक 'LIKE' का उपयोग करें

1
JahStation 19 अप्रैल 2021, 18:22