Πώς να ενσωματώσετε το Supabase με το Laravel για βάση δεδομένων και αποθήκευση

Τελευταία ενημέρωση: 5 Δεκέμβριο 2025
Συγγραφέας: TecnoDigital
  • Η ρύθμιση παραμέτρων του Laravel για χρήση της βάσης δεδομένων Supabase Postgres περιλαμβάνει τη σωστή ρύθμιση των μεταβλητών προγράμματος οδήγησης, σχήματος και περιβάλλοντος.
  • Το συγκεκριμένο πρόγραμμα οδήγησης του Supabase για το Laravel επιλύει αυτόματα συνηθισμένα προβλήματα με τις στήλες UUID σε ερωτήματα και ενώσεις.
  • Ο προσαρμογέας Flysystem σάς επιτρέπει να αντιμετωπίζετε το Supabase Storage ως έναν ακόμη δίσκο Laravel, ενσωματώνοντας εύκολα τις μεταφορτώσεις αρχείων.
  • Η χρήση προνομιακών κλειδιών υπηρεσίας και καλά διαμορφωμένων κάδων είναι το κλειδί για την αποφυγή σφαλμάτων εγγραφής και τη διασφάλιση μιας σταθερής ροής.

Supabase για Laravel

Αν εργάζεστε με το Laravel και είστε αφοσιωμένοι στο προγραμματισμός backend και νιώθεις σαν να κάνεις το άλμα σε μια βάση δεδομένων σύγχρονη, διαχειριζόμενη PostgreSQL όπως η SupabaseΠιθανότατα έχετε παρατηρήσει ότι δεν αρκεί να αλλάξετε απλώς μερικές μεταβλητές στο αρχείο .env. Υπάρχουν λεπτομέρειες σύνδεσης, σχήματα, έλεγχος ταυτότητας και αποθήκευση αρχείων που, αν παραμεληθούν, μπορούν να οδηγήσουν σε κάποια μάλλον αινιγματικά σφάλματα.

Επιπλέον, όταν θέλετε να πάτε ένα βήμα παραπέρα και να χρησιμοποιήσετε Το Supabase ως χώρος αποθήκευσης αρχείων Όταν ενσωματώνεται με το σύστημα αποθήκευσης του Laravel, τα πράγματα γίνονται λίγο πιο περίπλοκα: κλειδιά υπηρεσιών, κάδοι, τελικά σημεία, προσαρμοσμένα προγράμματα οδήγησης Flysystem κ.λπ. Τα καλά νέα είναι ότι τα πάντα - η βάση δεδομένων, ο χώρος αποθήκευσης και ο χειρισμός UUID - μπορούν να ενσωματωθούν τέλεια με αρκετά καθαρό τρόπο.

Σύνδεση Laravel με τη βάση δεδομένων Supabase

Το πρώτο βήμα είναι να έχετε ένα λειτουργικό έργο Laravel και να το συνδέσετε με τη βάση δεδομένων Postgres που παρέχεται από το Supabase. Για αυτό, χρειάζεστε ένα περιβάλλον με Ενημερώθηκαν τα PHP και Composer και δημιουργήστε ένα νέο έργο ή χρησιμοποιήστε ένα υπάρχον. Από την κονσόλα, απλώς δημιουργήστε το έργο με την τυπική εντολή Laravel και, στη συνέχεια, ξεκινήστε τη ρύθμιση της σύνδεσης.

Μόλις έχετε τον σκελετό του έργου, το συνηθισμένο βήμα είναι να εγκαταστήσετε ένα απλό σύστημα ελέγχου ταυτότητας. Το Laravel Breeze ταιριάζει πολύ καλά επειδή περιλαμβάνει Πρότυπα λεπίδων και βασική ροή σύνδεσης και εγγραφήςΑυτό σας επιτρέπει να επαληθεύσετε γρήγορα ότι η σύνδεση της βάσης δεδομένων σας έχει ρυθμιστεί σωστά και ότι μπορείτε να δημιουργήσετε χρήστες χωρίς προβλήματα.

Για να λάβετε τις λεπτομέρειες σύνδεσης, συνδεθείτε στον πίνακα Supabase και δημιουργήστε ένα νέο έργο βάσης δεδομένων (μπορείτε να το κάνετε απευθείας από νέα βάση δεδομένων(το οποίο ανακατευθύνει στον οδηγό). Εάν δεν έχετε ακόμη λογαριασμό, θα δείτε πρώτα την οθόνη εγγραφής. Εάν έχετε ήδη λογαριασμό, θα μεταβείτε απευθείας στις ρυθμίσεις του έργου και στην ενότητα όπου μπορείτε να ελέγξετε τη συμβολοσειρά σύνδεσης.

Μέσα στη σελίδα του έργου, στην ενότητα σύνδεσης, θα βρείτε ένα κουμπί όπως "Σύνδεση" ή παρόμοιο. Όταν κάνετε κλικ σε αυτό, το Supabase σας εμφανίζει διάφορες μορφές συμβολοσειράς σύνδεσης (URI, μεμονωμένες παράμετροι κ.λπ.). Αντιγράψτε ολόκληρο το URI, αλλά να θυμάστε ότι πρέπει αντικαταστήστε τον κωδικό πρόσβασης για αυτήν που χρησιμοποιείτε στην πραγματικότητα στη βάση δεδομένων, καθώς συχνά εμφανίζεται μια προεπιλεγμένη ή ένα σύμβολο κράτησης θέσης.

Με αυτές τις πληροφορίες, πρέπει να μεταβείτε στο αρχείο .env του έργου Laravel και να ενημερώσετε τις μεταβλητές DB_HOST, DB_PORT, DB_DATABASE, DB_USERNAME και DB_PASSWORD ή να διαμορφώσετε τη μεταβλητή DATABASE_URL εάν προτιμάτε να χρησιμοποιήσετε την πλήρη μορφή συμβολοσειράς. Ο στόχος είναι όλα να δείχνουν προς το Σύμπλεγμα Supabase Postgres και όχι στον τοπικό σας κεντρικό υπολογιστή.

Ρυθμίστε το πρόγραμμα οδήγησης Postgres και το σχήμα Supabase στο Laravel

Στο Laravel, το αρχείο κλειδιού για τη διαμόρφωση της βάσης δεδομένων είναι config/database.phpΠαρόλο που μπορείτε να χρησιμοποιήσετε απευθείας το πρόγραμμα οδήγησης pgsql που συνοδεύει το πλαίσιο, όταν εργάζεστε με το Supabase είναι σύνηθες να εφαρμόζετε ορισμένες πρόσθετες προσαρμογές, ειδικά όσον αφορά τα σχήματα και τις επιλογές που αφορούν συγκεκριμένα το Postgres.

Μια τυπική διαμόρφωση για το Postgres στο Laravel μπορεί να μοιάζει με αυτό, μέσα στον πίνακα συνδέσεων, κάτω από το κλειδί 'pgsql':

'pgsql' => ,

Το κλειδί εδώ βρίσκεται στην παράμετρο διαδρομή_αναζήτησηςΤο Supabase, από προεπιλογή, χρησιμοποιεί το δημόσιο σχήμα, το οποίο είναι αυτό που εκτίθεται μέσω των API του. Εάν θέλετε να διατηρήσετε την εφαρμογή Laravel ξεχωριστά από αυτό το σχήμα και να αποφύγετε διενέξεις πινάκων ή πολιτικών, συνιστάται ιδιαίτερα να αλλάξετε το search_path στο δικό σας σχήμα, για παράδειγμα. laravel, όπως φαίνεται στο προηγούμενο παράδειγμα.

Με αυτόν τον τρόπο, οι μετεγκαταστάσεις και οι πίνακες που δημιουργούνται από το έργο σας θα δημιουργούνται σε αυτό το εναλλακτικό σχήμα και όχι δημόσια. Αυτός ο διαχωρισμός διευκολύνει πολύ τη διαχείριση. κανόνες ασφαλείας, RLS και πρόσβαση από τον πίνακα Supabase χωρίς να πατάτε κάτι που δεν πρέπει και διατηρώντας τη δομή της βάσης δεδομένων οργανωμένη.

  Γλώσσα Προγραμματισμού Cobol: Μια πλήρης επισκόπηση

Μόλις προσαρμόσετε το αρχείο διαμόρφωσης, μπορείτε να ξεκινήσετε τις μετεγκαταστάσεις χρησιμοποιώντας τις συνήθεις εντολές Laravel. Αυτό θα δημιουργήσει τους πίνακες ελέγχου ταυτότητας και τυχόν άλλους πίνακες που έχετε ορίσει. Εάν όλα έχουν διαμορφωθεί σωστά, οι εντολές θα εκτελούνται σε σχέση με το Supabase Postgres χωρίς να χρειάζεται να κάνετε τίποτα άλλο.

Αφού ολοκληρωθούν οι μετεγκαταστάσεις, ξεκινήστε τον διακομιστή ανάπτυξης με την εντολή `artisan serve` και δοκιμάστε να εγγραφείτε και να συνδεθείτε χρήστες. Εάν δεν εμφανιστούν σφάλματα σύνδεσης ή μετεγκατάστασης, αυτό σημαίνει ότι το Laravel λειτουργεί. σωστή επικοινωνία με το Supabase και μπορείς συνεχίστε να χτίζετε την επιχειρηματική σας λογική κανονικά.

Χρήση ενός συγκεκριμένου προγράμματος οδήγησης Supabase στο Laravel

Παρόλο που ο τυπικός οδηγός pgsql λειτουργεί, υπάρχει ένα πακέτο που προσθέτει ένα Πρόγραμμα οδήγησης βάσης δεδομένων supabase για Laravel, επεκτείνοντας τη συμπεριφορά της PostgreSQL με πολύ χρήσιμες βελτιώσεις, ειδικά όσον αφορά τον χειρισμό των στηλών UUID και τον τρόπο κατασκευής των ερωτημάτων.

Αυτό το πακέτο, που διανέμεται ως prahsys/laravel-supabase, εγκαθίσταται μέσω του Composer και καταχωρεί ένα επιπλέον πρόγραμμα οδήγησης που ονομάζεται supabase, το οποίο μπορείτε να χρησιμοποιήσετε στο αρχείο config/database.php. Εσωτερικά, βασίζεται στο πρόγραμμα οδήγησης Postgres του Laravel, αλλά ενσωματώνει ρυθμίσεις και γραμματικές αναζήτησης βελτιστοποιημένο για το συγκεκριμένο περιβάλλον Supabase.

Μόλις εγκατασταθεί, μπορείτε να δηλώσετε κάτι σαν το ακόλουθο μέσα στο ενότητα συνδέσεων:

'connections' => ,
    // otras conexiones...
],

Το πλεονέκτημα της χρήσης αυτού του προγράμματος οδήγησης είναι ότι εξακολουθείτε να έχετε όλη την ισχύ της μηχανής Postgres, αλλά χειρίζεται επίσης αυτόματα ορισμένες ευαίσθητες λεπτομέρειες του Supabase, ειδικά όταν εργάζεστε με UUID ως πρωτεύοντα κλειδιά ή πεδία σχέσηςΑυτό αποφεύγει την ανάγκη χειροκίνητης σύνταξης της διαδικασίας χύτευσης για κάθε περίπλοκο ερώτημα.

Το πακέτο έχει επίσης σχεδιαστεί για να ταιριάζει απόλυτα με τις σύγχρονες εκδόσεις του framework και της PHP, προσφέροντας επίσημη συμβατότητα με Laravel 10.x, 11.x, 12.x και με PHP από την έκδοση 8.1 και μετά, καθώς και με οποιαδήποτε τυπική βάση δεδομένων PostgreSQL, συμπεριλαμβανομένης φυσικά της Supabase.

Για να διασφαλιστεί ότι όλα λειτουργούν σωστά, το πακέτο περιλαμβάνει μια σουίτα αυτοματοποιημένων δοκιμών. Μπορείτε να εκτελέσετε τις δοκιμές με την εντολή `composer test`, η οποία θα χρησιμοποιήσει μια βάση δεδομένων SQLite στη μνήμη για ταχύτητα, ή να προετοιμάσετε ένα αρχείο `.env.testing` που θα οδηγεί στο Supabase σας και να εκτελέσετε το `composer test-supabase` για να επαληθεύσετε τη συμπεριφορά σε ένα πραγματικό περιβάλλον. Απομακρυσμένες Ταχυδρομικές Υπηρεσίες.

Διαχείριση UUID σε Supabase και Laravel

Το Supabase έχει μια ιδιαιτερότητα με τις στήλες UUID: αν προσπαθήσετε να συγκρίνετε ένα UUID απευθείας με μια συμβολοσειρά κειμένου χωρίς μετατροπή, το ερώτημα μπορεί να αποτυγχάνει ή επιστρέφει μη αναμενόμενα αποτελέσματαΣε ένα "απλό" σύστημα Postgres θα μπορούσατε να λύσετε αυτό το πρόβλημα με καθολικές μετατροπές ή προσαρμοσμένους τελεστές, αλλά στο Supabase αυτές οι καθολικές προσαρμογές δεν επιτρέπονται.

Αυτό συνεπάγεται από μια άμεση διερεύνηση του στυλ:

SELECT *
FROM users
WHERE id = '123e4567-e89b-12d3-a456-426614174000';

Δεν θα λειτουργήσει όπως θα περιμένατε. Ωστόσο, εάν διεξάγετε εσείς το συγκεκριμένο κάστινγκ:

SELECT *
FROM users
WHERE CAST(id AS TEXT) = '123e4567-e89b-12d3-a456-426614174000';

Το ερώτημα είναι επιτυχές. Το πρόβλημα είναι ότι στο Laravel, όταν γράφετε ερωτήματα με το Eloquent ή το εργαλείο δημιουργίας ερωτημάτων, δεν θέλετε να πάτε βάζοντας CAST σε κάθε σημείοΕκεί ακριβώς μπαίνει στο παιχνίδι ο οδηγός supabase από το προαναφερθέν πακέτο, ο οποίος φροντίζει για την προσθήκη αυτών των μετατροπών για εσάς.

Με ενεργό αυτό το πρόγραμμα οδήγησης, μπορείτε να εκτελέσετε κοινά ερωτήματα όπως:

$user = User::find($uuidString);
$user = User::where('id', $uuidString)->first();
$users = User::whereIn('id', )->get();

Και όχι μόνο σε άμεσες διαβουλεύσεις, αλλά και σε ενώνειΓια παράδειγμα, αν θέλετε να ανακτήσετε αναρτήσεις και να τις ενώσετε με τον πίνακα χρηστών χρησιμοποιώντας ένα πεδίο UUID, θα μπορούσατε να κάνετε κάτι σαν αυτό:

$posts = Post::join('users', 'posts.user_id', '=', 'users.id')
    ->where('users.email', '[email protected]')
    ->get();

Ο οδηγός είναι υπεύθυνος για την εφαρμογή του απαιτούνται ηθοποιοί για κείμενο στις σχετικές στήλες UUID, με διαφάνεια. Με αυτόν τον τρόπο, ο κώδικά σας παραμένει ιδιωματικός για το Laravel και δεν χρειάζεται να γράφετε ακατέργαστη SQL ή να χρησιμοποιείτε περίεργα κόλπα σε κάθε σύνθετο ερώτημα.

  Οφέλη από την ανάπτυξη προσαρμοσμένου λογισμικού

Αν θέλετε καλύτερο έλεγχο σχετικά με το ποιες στήλες θεωρούνται UUID, το πακέτο προσφέρει το χαρακτηριστικό CastsUuidColumns για τα μοντέλα Eloquent. Απλώς χρησιμοποιήστε το στην κλάση μοντέλου και ορίστε έναν προστατευμένο πίνακα από πρόσθετες στήλες:

use Prahsys\Supabase\Traits\CastsUuidColumns;

class Post extends Model
{
    use CastsUuidColumns;

    protected $uuidColumns = ;
}

Αυτό το χαρακτηριστικό κάνει τρία σημαντικά πράγματα: περιλαμβάνει το πρωτεύον κλειδί ως UUID από προεπιλογή και προσθέτει οποιαδήποτε στήλη δηλώνετε στην ιδιότητα. Στήλες $uuid και μεταδίδει αυτές τις πληροφορίες στον δημιουργό ερωτημάτων, ώστε να γνωρίζει πού να εφαρμόσει τις μετατροπές. Έτσι, όλη η πρόσβαση σε δεδομένα που αφορούν UUID γίνεται συνεπής και αυτοματοποιημένη.

Για ακόμη πιο προχωρημένες περιπτώσειςΜπορείτε να καταχωρήσετε έναν προσαρμοσμένο ανιχνευτή στηλών UUID. Χρησιμοποιώντας το πακέτο PostgresGrammar, μπορείτε να καθορίσετε μια συνάρτηση επανάκλησης η οποία, με βάση το όνομα της στήλης ή το περιβάλλον ερωτήματος, αποφασίζει εάν θα πρέπει να αντιμετωπιστεί ως UUID. Για παράδειγμα:

use Prahsys\Supabase\Database\Query\Grammars\PostgresGrammar;

PostgresGrammar::detectUuidColumnsWith(function ($columnName, $query) {
    return str_contains($columnName, 'uuid_')
        || in_array($columnName, );
});

Με την εγκατάσταση αυτής της συνάρτησης, το σύστημα μπορεί να θεωρήσει ως UUID όλες τις στήλες των οποίων το όνομα έχει ένα συγκεκριμένο μοτίβο ή βρίσκεται μέσα σε μια συγκεκριμένη λίστα, προσαρμοζόμενο σε πολύ συγκεκριμένες συμβάσεις ονοματοδοσίας του έργου σας.

Ενσωμάτωση του Supabase Storage ως συστήματος αρχείων στο Laravel

Εκτός από τη βάση δεδομένων, πολλά έργα πρέπει να αποθηκεύουν εικόνες, έγγραφα ή άλλα αρχεία που έχουν ανεβάσει οι χρήστες. Το Supabase περιλαμβάνει μια υπηρεσία αποθήκευσης που βασίζεται σε bucket και μπορείτε να αξιοποιήσετε ως... Δίσκος Laravel χρησιμοποιώντας FlysystemΓια τον σκοπό αυτό, υπάρχει ένας συγκεκριμένος προσαρμογέας που επιτρέπει στο Supabase Storage να αντιμετωπίζεται ως απλώς ένα ακόμη πρόγραμμα οδήγησης μέσα στο config/filesystems.php.

Το εν λόγω πακέτο παρέχει έναν προσαρμογέα Flysystem που ενσωματώνεται διαφανώς με το σύστημα αποθήκευσης του framework. Πληροί τις ελάχιστες απαιτήσεις του PHP >= 8.1, Laravel 10.x ή 11.x και την επέκταση PHP fileinfo (ext-fileinfo), την οποία η Laravel ήδη συνιστά για τον χειρισμό αρχείων. Η εγκατάσταση γίνεται με το Composer και, αφού συμπεριληφθεί, χρειάζεται μόνο να ορίσετε τον δίσκο supabase στη διαμόρφωση.

Στο αρχείο config/filesystems.phpΜέσα στους δίσκους συστοιχίας, θα προσθέσετε κάτι παρόμοιο με το ακόλουθο:

'supabase' => ,
    ],
    'signedUrlExpires' => 60 * 60 * 24,
],

Η παράμετρος του κάδου είναι συνήθως απλώς η όνομα κάδου αποθήκευσης που δημιουργήσατε στον πίνακα Supabase (για παράδειγμα, myapp-file-uploads). Το τελικό σημείο είναι η βασική διεύθυνση URL της υπηρεσίας αποθήκευσης του έργου, η οποία είναι επίσης ορατή στην αντίστοιχη ενότητα του πίνακα και συνήθως προέρχεται από τη διεύθυνση URL και την περιοχή του έργου.

Η επιλογή `public` υποδεικνύει εάν τα περιεχόμενα του κάδου θα αντιμετωπίζονται ως δημόσια από προεπιλογή. Εάν είναι `true`, ο προσαρμογέας θα δημιουργεί προσβάσιμες διευθύνσεις URL χωρίς ειδική υπογραφή. Εάν είναι `false`, ενεργοποιείται η επιλογή `defaultUrlGeneration`, η οποία μπορεί να επιβάλει τη δημιουργία υπογεγραμμένων διευθύνσεων URL με χρόνο λήξης που καθορίζεται από το `signedUrlExpires`. Αυτή η διαμόρφωση σάς επιτρέπει να εξισορροπήσετε το φόρτο. ασφάλεια και άνεση ανάλογα με τον τύπο των αρχείων που χειρίζεστε.

Η γενική διεύθυνση URL δίσκου συνήθως παραμένει null, έτσι ώστε ο προσαρμογέας να την εξάγει αυτόματα από το τελικό σημείο. Θα πρέπει να την αγγίζετε μόνο εάν χρησιμοποιείτε μεσολάβησης ή ενδιάμεσου CDN και θέλετε οι δημιουργημένες διαδρομές να δείχνουν σε αυτόν τον τομέα αντί για τον εγγενή τομέα Supabase.

Αντιμετώπιση σφαλμάτων μεταφόρτωσης και κατανόηση του κλειδιού του χώρου αποθήκευσης Supabase

Ένα αρκετά συνηθισμένο πρόβλημα κατά την προσπάθεια μεταφόρτωσης αρχείων στο Supabase Storage από το Laravel είναι η λήψη μηνυμάτων όπως «Δεν είναι δυνατή η εγγραφή αρχείου στην τοποθεσία: μεταφορτώσεις/…»Αυτό συνήθως υποδεικνύει ότι, παρόλο που το πρόγραμμα οδήγησης έχει ρυθμιστεί, το Supabase αρνείται τη λειτουργία εγγραφής λόγω ανεπαρκών δικαιωμάτων ή λανθασμένα διαμορφωμένου κλειδιού.

Στον δίσκο supabase του config/filesystems.php, η διαμόρφωση αναφέρει τη χρήση ένα «προνομιακό κλειδί» Στο πεδίο κλειδιού, δηλώνοντας ρητά ότι ένα κλειδί μόνο για ανάγνωση δεν θα λειτουργήσει. Αυτό σημαίνει ότι πρέπει να χρησιμοποιήσετε ένα κλειδί υπηρεσίας που έχει δικαιώματα εγγραφής στον κάδο, όχι απλώς ένα δημόσιο κλειδί API που προορίζεται για τον πελάτη ή ένα κλειδί που προορίζεται για συμβατότητα S3 χωρίς δικαιώματα τροποποίησης.

Στον πίνακα Supabase, στην ενότητα διαμόρφωσης API και αποθήκευσης, θα βρείτε τόσο τα ανώνυμα κλειδιά όσο και τα service_role ή ισοδύναμοΑυτά είναι αυτά με εκτεταμένα δικαιώματα. Αυτό το κλειδί υπηρεσίας, και όχι το δημόσιο, θα πρέπει να τοποθετήσετε στη μεταβλητή SUPABASE_SECRET_ACCESS_KEY, την οποία ο οδηγός θα διαβάσει στη συνέχεια μέσω του env('SUPABASE_SECRET_ACCESS_KEY').

  Η σημασία των βάσεων δεδομένων στον επιχειρηματικό κόσμο

Εάν κάνατε δοκιμές με το κλειδί S3 από τη διαμόρφωση αποθήκευσης ή με τα γενικά κλειδιά API από το έργο, είναι πολύ πιθανό αυτά τα διαπιστευτήρια να μην έχουν άδεια εγγραφής στον συγκεκριμένο κάδο, με αποτέλεσμα το σφάλμα εγγραφής. Η αλλαγή της τιμής κλειδιού σε έγκυρο κλειδί υπηρεσίας με δικαιώματα εγγραφής Και επιβεβαιώνοντας ότι ο κάδος υπάρχει και είναι σωστά γραμμένος, το πρόβλημα συνήθως λύνεται.

Εκτός από το κλειδί, είναι σημαντικό να επαληθεύσετε ότι ο κάδος που ορίζεται στο SUPABASE_STORAGE_BUCKET ταιριάζει ακριβώς με αυτόν που δημιουργήθηκε στη διεπαφή Supabase, σεβόμενος τα κεφαλαία και τα πεζά γράμματα, και ότι το τελικό σημείο αντιστοιχεί στη σωστή διεύθυνση URL για αυτήν την παρουσία αποθήκευσης. Μια λεπτομέρεια, όπως ένας επιπλέον χαρακτήρας ή ένας εσφαλμένος τομέας, μπορεί να εμποδίσει τη λειτουργία του προσαρμογέα. εντοπίστε τον πραγματικό προορισμό των αρχείων.

Ροή εργασίας με Laravel Breeze, Blade και Supabase Storage

Μόλις ρυθμίσετε τη βάση δεδομένων και τον χώρο αποθήκευσης, το επόμενο φυσικό βήμα είναι να ενσωματώσετε τα πάντα με το Διεπαφή Laravel Breeze και πρότυπα BladeΜε αυτόν τον τρόπο, οι χρήστες μπορούν να εγγραφούν, να επαληθεύσουν και να ανεβάσουν αρχεία στο Supabase χωρίς να εγκαταλείψουν το οικοσύστημα Laravel.

Μέσα στα χειριστήρια σας, θα χρησιμοποιούσατε το Πρόσοψη αποθήκευσης που δείχνει προς τον δίσκο supabase. Για παράδειγμα, για να ανεβάσετε ένα αρχείο που λαμβάνεται από μια φόρμα με εισαγωγή αρχείου, θα μπορούσατε να κάνετε κάτι σαν:

if ($request->hasFile('file')) {
    $path = $request->file('file')
        ->store('uploads', 'supabase');
}

Αυτός ο κώδικας λέει στο Laravel να χρησιμοποιήσει τον δίσκο υποβάση και τοποθετήστε το αρχείο μέσα στον φάκελο εικονικών μεταφορτώσεων εντός του διαμορφωμένου κάδου. Εάν το κλειδί και το τελικό σημείο είναι σωστά, το αρχείο θα μεταφορτωθεί στον χώρο αποθήκευσης Supabase και μπορείτε να ανακτήσετε τη διαδρομή του ή να δημιουργήσετε δημόσιες ή υπογεγραμμένες διευθύνσεις URL χρησιμοποιώντας τυπικές μεθόδους αποθήκευσης.

Το πλεονέκτημα αυτής της προσέγγισης είναι ότι η εφαρμογή σας διατηρεί μια ενιαία διεπαφή για την αποθήκευση, ανεξάρτητα από το αν χρησιμοποιεί τοπικό δίσκο, Amazon S3, Supabase ή άλλη υποστηριζόμενη υπηρεσία. Η αλλαγή παρόχων περιορίζεται σε προσαρμογή του config/filesystems.php και τις μεταβλητές περιβάλλοντος, χωρίς να επηρεάζεται η επιχειρηματική λογική.

Συνδυάζοντας αυτό με τα Blade και Breeze, μπορείτε να προσφέρετε φόρμες μεταφόρτωσης, λίστες αρχείων και συνδέσμους λήψης πλήρως ενσωματωμένες στην εμπειρία χρήστη της εφαρμογής σας. Επιπλέον, η προσέγγιση που βασίζεται σε bucket και πολιτικές του Supabase Storage σάς επιτρέπει να αξιοποιήσετε τα οφέλη του. έλεγχοι πρόσβασης και κανόνες ασφαλείας για να ορίσετε τι μπορεί να δει ή να κατεβάσει κάθε χρήστης.

Αυτό το ολόκληρο οικοσύστημα πακέτων, προγραμμάτων οδήγησης και διαμορφώσεων επιτρέπει στο Laravel να λειτουργεί πολύ άνετα με το Supabase, τόσο στην πτυχή των σχεσιακών δεδομένων με το Postgres όσο και στην... αποθήκευση αρχείων και διαχείριση UUIDΡυθμίζοντας σωστά τα κλειδιά, τα σχήματα και τα προγράμματα οδήγησης, επιτυγχάνετε μια πολύ σταθερή ενσωμάτωση που αποφεύγει πολλά από τα τυπικά σφάλματα που προκύπτουν κατά την προσπάθεια σύνδεσης και των δύο πλατφορμών χειροκίνητα και χωρίς αυτά τα επίπεδα βοήθειας.

Η σύνδεση του Laravel με το Supabase για βάση δεδομένων και αποθήκευση, η αξιοποίηση του αποκλειστικού προγράμματος οδήγησης Supabase για την απρόσκοπτη διαχείριση των UUID και η χρήση του προσαρμογέα Flysystem για αποθήκευση σάς επιτρέπει να δημιουργείτε σύγχρονες εφαρμογές όπου Ολόκληρη η σύνθετη υποδομή είναι ενσωματωμένη Παρασκήνια του καθαρού API του Laravel, από τις μετεγκαταστάσεις και τον έλεγχο ταυτότητας έως την μεταφόρτωση αρχείων σε ασφαλείς κάδους.

οδηγία blade hastack στο laravel
Σχετικό άρθρο:
Η οδηγία Blade hasStack στο Laravel και ο προηγμένος έλεγχος στοίβας