Articles

Menene Laravel Eloquent, yadda ake amfani da shi, koyawa tare da misalai

Tsarin Laravel PHP ya ƙunshi Eloquent Object Relational Mapper (ORM), wanda ke ba da hanya mafi sauƙi don sadarwa tare da bayanan bayanai. 

Laravel da Ƙwaƙwalwa suna taimakawa haɓaka aikace-aikace da ci gaban dandamali, suna ba da cikakkiyar mafita ga mafi yawan matsalolin. Ana magance buƙatun tare da haɓakawa cikin sauri, da kuma ingantaccen tsari, mai sake amfani da shi, mai kiyayewa, da lambar ƙima. 

Yadda zazzagewa ke aiki

Developers iya aiki a ciki Eloquent tare da bayanai masu yawa da inganci ta amfani da aiwatar da ActiveMethod. Tsarin gine-gine ne inda ƙirar da aka ƙirƙira a cikin tsarin Model-View-Controller (MVC) yayi daidai da tebur a cikin bayanan. Fa'idar ita ce samfuran suna yin ayyukan tattara bayanai na gama gari ba tare da rubuta doguwar tambayoyin SQL ba. Samfura suna ba ku damar bincika bayanai a cikin tebur kuma saka sabbin bayanai cikin tebur. Tsarin daidaita ma'auni mai yawa da ke gudana akan tsarin daban-daban yana da sauƙi. Ba kwa buƙatar rubuta tambayoyin SQL. Duk abin da za ku yi shi ne defiKammala teburin bayanai da alaƙar da ke tsakanin su, kuma Eloquent zai yi sauran aikin.

Laravel shiri

Yabo da amfani na Eloquent ORM, da fahimtar yanayin yanayin ya zama dole. Matakan farawa:

  1. Shigar Laravel daga getcomposer.org, don yin wannan bi umarnin nan
  2. Ƙirƙiri migration amfani da console Artisan
  3. Ƙirƙiri samfuri eloquent
  4. gudu i seed na database

Artisan Console shine sunan layin umarni da aka haɗa a cikin Laravel. Yana ba da saitin umarni masu amfani don amfani yayin haɓaka aikace-aikacen ku. Abu mai ƙarfi ne ke tafiyar da shi Symfony Console.

Don ganin jerin duk cikakkun umarnin Artisan, zaku iya amfani da umarnin jeri:

php artisan list

Duk umarni suna zuwa tare da taƙaitaccen bayanin hujjojinsa da zaɓuɓɓukan sa. Ana nuna wannan a allon "taimako". Don nuna allon taimako, kawai a riga sunan umarni tare da "taimako" kamar yadda aka nuna:

php artisan help migrate

Migration

Hijira tsari ne na sarrafa bayanai ta hanyar rubuta PHP maimakon SQL. Yana ba da hanyar ƙara sarrafa sigar zuwa bayanan bayanai. 

Don ƙirƙirar ƙaura, kawai gudanar da umarni mai zuwa:

php artisan make:migration create_student_records

Wannan yana haifar da fayil ɗin ƙaura. A cikin editan rubutun ku, buɗe fayil ɗin da kuka ƙirƙira a cikin babban fayil ɗin database\migrations:

<?php
use IlluminateSupportFacadesSchema;
use IlluminateDatabaseSchemaBlueprint;
use IlluminateDatabaseMigrationsMigration;

class CreateStudentRecordsTable extends Migration
{
    /**
    * Run the migrations.
    *
    * @return void
    */
    public function up()
    {
        Schema::create('student__records', function (Blueprint $table) {
            $table->increments('id');
            $table->timestamps();
        });
    }

    /**
    * Reverse the migrations.
    *
    * @return void
    */
    public function down()
    {
        Schema::dropIfExists('student__records');
    }
}

Lambar aji ne mai suna iri ɗaya'create student records', kuma yana da hanyoyi guda biyu: sama da ƙasa. Hanyar sama ya kamata ta yi canje-canje ga bayanan; don haka a duk lokacin da kuka yi ƙaura zuwa bayananku, za a aiwatar da kowace lamba a cikin hanyar sama. A gefe guda, hanyar da aka saukar ya kamata ta mayar da waɗannan canje-canjen bayanai; don haka a duk lokacin da ka gudu da rollback della migration, Hanyar ƙasa yakamata ta gyara abin da hanyar sama tayi. A cikin hanyar up akwai maginin tsarin da ake amfani da shi don ƙirƙira da sarrafa teburin. Me zai faru idan kun soke wasu ƙaura? Abin da kawai za ku yi shi ne aiwatar da umarni mai zuwa:

php artisan migrate:rollback

Kuma zai tattara na karshe migration wanda aka aiwatar. Hakanan, zaku iya dawo da bayanan bayanan gabaki ɗaya ta hanyar gudu:

php artisan migrate:reset

Wannan zai soke duk ƙaura.

Defition na model na Eloquent

Bayan an gama ƙaura na bayanai, tsari na gaba shine seedingEloquent ya shigo cikin wasa tun daga seeding yana saka bayanai a cikin bayanan mu. Don haka kuna buƙatar ƙirƙirar samfura kafin buɗa bayanan bayanai. Kowane tebur na bayanai yana da samfurin da ya dace wanda ake amfani da shi don mu'amala da wannan tebur. Samfura suna ba ku damar bincika bayanan da ke cikin tebur ɗinku, da kuma saka sabbin bayanai a cikin tebur. Hanya mafi sauƙi don hanzarta samfurin shine amfani da umarni mai zuwa:

php artisan make:model Student
Ana nuna misalin samfuri a ƙasa Student, waɗanda za a iya amfani da su don maidowa da adana bayanai daga teburin bayanan ɗalibin mu:
<?php
namespace App;
use IlluminateDatabaseEloquentModel;

class Student extends Model
{
    //
}

Lokacin da kuke samar da samfuri kuma a lokaci guda kuna son ƙirƙirar ƙaura na bayanai, zaku iya amfani da zaɓin –migration o -m:

php artisan make:model Student --migration

php artisan make:model Student -m

Masu shuka iri

Gabaɗaya masu shuka iri ne na azuzuwan na musamman waɗanda ke ba mu damar cika bayanan mu akai-akai tare da ainihin bayanai iri ɗaya. Muna aiwatar da umarni mai zuwa:

php artisan make:seeder StudentsRecordSeeder

A cikin editan rubutu, ƙarƙashin babban fayil ɗin tsaba, buɗe sabon fayil ɗin da aka ƙirƙira tare da sunan fayil: StudentsRecordSeeder.php. Kamar yadda kake gani wannan aji ne mai sauqi qwarai tare da hanya guda da ake kira run().

<?php
use IlluminateDatabaseSeeder;

class StudentsRecordSeeder extends Seeder
{
    /**
    * Run the database seeds
    * @return void
    */

    public function run()
    {
        //
    }
}

Lambar kawai abin nade ne a kusa da ajin umarni na wasan bidiyo, musamman an gina shi don taimakawa da aikin seeding. Shirya lambar sannan ka adana shi.

Jaridar Innovation
Kada ku rasa mafi mahimmancin labarai akan ƙirƙira. Yi rajista don karɓar su ta imel.
public function run()
{
    echo 'Seeding!';
}

Kuma zuwa Terminal:

php artisan db:seed --class=StudentsRecordSeeder

Yanzu zaku iya cika tebur tare da wasu shigarwar kuma ku gudu:

php artisan db:seed --class=class=StudentsRecordSeeder

Anan zaka iya ci gaba da gogewa, ƙarawa, gyara shigarwar a cikin DB, sannan maido da su tare da umarni mai sauƙi.

CRUD tare da Laravel Eloquent

Ayyukan CRUD tare da Laravel Eloquent object-relational mapper (ORM) yana sauƙaƙa wa masu haɓaka Laravel suyi aiki tare da bayanai masu yawa. Yana aiwatar da ƙirƙira, karantawa, sabuntawa, da gogewa (CRUD) ayyuka, da taswirorin abubuwa zuwa teburin bayanai. Yana sarrafa duk hulɗar bayanai da ake buƙata don ayyukan CRUD.

Ƙirƙirar bayanan

Kuna iya amfani da :: ƙirƙira hanyar don saka sabon rikodin cikin ma'ajin bayanai.

student_record::create(array(
    'first_name' => 'John',
    'last_name'  => 'Doe',
    'student_rank' => 1
));

Baya ga hanyar ƙirƙirar sauƙi da aka nuna a sama, zaku iya ƙirƙirar sabon abu kuma ku ba shi halaye daban-daban. Sa'an nan, za ka iya kiran aikin save() da kuma gudanar da code. Hanyoyin kamar firstOrCreate() ko firstOrNew() wasu zaɓuɓɓuka ne don ƙirƙirar rikodin. Wadannan za su ba ka damar samun dalibi mai wasu halaye; idan ba a sami wannan ɗalibin ba, zaku ƙirƙira shi a cikin ma'ajin bayanai ko kuma zazzage sabon misali.

Bayanan karatu

Yin amfani da Ƙwararren ORM, zaku iya nemo bayanai a cikin bayananku. Tambayoyin ana gina su ne kawai kuma suna ba da kwarara mai santsi. Don ƙirƙirar maganganu::where, za ku yi amfani da hanyoyin get() Kuma first(). Hanyar first() zai dawo da rikodin guda ɗaya kawai, yayin da hanyar get() zai dawo da tsararrun bayanai masu ma'ana. Hakanan, hanyar find() za a iya amfani da shi tare da tsararrun maɓallan farko, waɗanda za su dawo da tarin bayanan da suka dace. Ga wasu misalai:

$student = Students::all();

Wannan lambar tana samun duk ɗalibai. Yayin da lambar mai zuwa ta sami takamaiman ɗalibi ta ID:

$dalibi = Dalibai :: nemo(1);

Hakanan, kamar yadda aka nuna a ƙasa, lambar tana bayyana neman ɗalibi bisa takamaiman sifa.

$JohnDoe = Students::where('name', '=', 'John Doe')->first();

Don hanyar samun(), wannan lambar tana nuna yadda ake nemo ɗalibi mai matakin sama da 5.

$rankStudents = Student::where('student_rank', '>', 5)->get();
Sabunta rikodin

Ana ɗaukaka rikodin ta amfani da Eloquent yana da sauƙi. Don sabunta rikodin, kawai nemo rikodin da kake son ɗaukakawa, gyara halayen kuma ajiyewa. Misali, don canza matakin aji na ɗalibin John Doe zuwa 5, da farko nemo ɗalibin sannan aiwatar da hanyar adanawa.

$JohnDoe = Bear::where('name', '=', 'John Doe')->first();
$JohnDoe->danger_level = 5;
$JohnDoe->save();

Hakanan za'a iya amfani da hanyar adanawa don sabunta samfura waɗanda suka riga sun wanzu a cikin ma'ajin bayanai.

Share bayanan

Zazzagewa yana alfahari da tsarin sabunta rikodin sa cikin sauƙi, amma yana da labari iri ɗaya tare da gogewa. Akwai zaɓuɓɓuka guda biyu: fayilolin cirewa da aiwatar da hanyar sharewa, ko kawai amfani da hanyar lalata. Don nemo da share rikodin, kawai gudanar da umarni masu zuwa:

$student = Students::find(1);
$student->delete();

Don share rikodin da bayanai da yawa, ana gudanar da umarni:

Students::destroy(1);
Students::destroy(1, 2, 3);

Lura cewa sigogin lalata maɓallai ne kawai na farko sabanin hanyar sharewa wanda zai iya karɓar kowane ginshiƙi na bayanai.

Don nemo da share duk ɗalibai sama da matakin 10.

Students::where('student_rank', '>', 10)->delete();
Ercole Palmeri
Jaridar Innovation
Kada ku rasa mafi mahimmancin labarai akan ƙirƙira. Yi rajista don karɓar su ta imel.

Kwanan nan labarin

Veeam yana fasalta mafi cikakken tallafi don ransomware, daga kariya zuwa amsawa da murmurewa

Coveware ta Veeam zai ci gaba da ba da sabis na amsa abin da ya faru ta hanyar intanet. Coveware zai ba da damar bincikar bincike da damar gyarawa…

23 Afrilu 2024

Kore da Juyin Juya Halin Dijital: Yadda Kulawar Hasashen ke Canza Masana'antar Mai & Gas

Kulawa da tsinkaya yana kawo sauyi a fannin mai & iskar gas, tare da sabbin hanyoyin kula da tsirrai.…

22 Afrilu 2024

Mai kula da amincin Burtaniya ya ɗaga ƙararrawar BigTech akan GenAI

Hukumar CMA ta Burtaniya ta ba da gargadi game da halayen Big Tech a cikin kasuwar bayanan sirri. Akwai…

18 Afrilu 2024

Casa Green: juyin juya halin makamashi don dorewar makoma a Italiya

Dokar "Green Houses" da Tarayyar Turai ta tsara don inganta ingantaccen makamashi na gine-gine, ta kammala aikinta na majalisar tare da…

18 Afrilu 2024