Rumah rangka kerja php Laravel Contoh membuktikan bahawa ChatGPT mempunyai impak yang besar kepada pengaturcara biasa!

Contoh membuktikan bahawa ChatGPT mempunyai impak yang besar kepada pengaturcara biasa!

Mar 17, 2023 pm 03:52 PM
laravel pengaturcara chatgpt

Artikel ini membawakan anda pengetahuan yang berkaitan tentang ChatGPT terutamanya bercakap tentang cara saya menggunakan contoh untuk membuktikan kesan atau bantuan ChatGPT kepada kami pengaturcara biasa? Rakan-rakan yang berminat boleh lihat di bawah ini semoga bermanfaat untuk semua.

Saya baru sahaja melihat soalan dalam komuniti, tertanya-tanya bagaimana untuk menulis logik penghakiman berikut dengan elegan:
( Ia dapat dilihat bahawa terdapat banyak logik penghakiman dan tidak tidak perlu terperinci. dimuat naik di Internet.Jadi saya menghantar soalan asal kepada

腐植酸含量 30 g/L(不低于 30 g/L)(右边有 +- 键,可以增加或减少,但净含量不低于 30 g/L)。大量元素含量(合计不低于 200 g/L):氮 70 g/L (下边有两个选择,UAN 或氮,每个健右边有 +- 键,可以增加或减少,下同), 磷 70 g/L (下边有两个选择,磷酸一铵或磷酸二铵,每个健右边有 +- 键,可以增加或减少,下同),钾 60 g/L (下边有四个选择,氯化钾、硫酸钾、硝酸钾或磷酸二氢钾,每个健右边有 +- 键,可以增加或减少,下同)。至少包括两种元素,单一元素净含量不低于 20 g/L,氮、磷、钾三个相加不能低于 200 g/L,低于 200 g/L 弹出错误提示。
Salin selepas log masuk
游离氨基酸 100 g/L(不低于 100 g/L)(右边有 +- 键,可以增加或减少,但净含量不低于 100 g/L),微量元素(不低于 20 g/L):铁 4 g/L (每个右边有 +- 键,可以增加或减少,至少包括 1 种微量元素,6 种元素净含量总和不低于 20 g/L,低于则有错误提示。若添加任一微量元素,不低于 0.5 g/L,低于则有错误提示)、锌 4g/L、硼 4g/L、铜 4g/L、锰 3.5g/L、钼 0.5g/L(右边有 +- 键,可以增加或减少,钼净含量不能高于 5 g/L,高于则有错误提示)
Salin selepas log masuk
dan mendapat jawapan berikut:

(Memandangkan rangkaian saya tidak begitu stabil, jawapan yang saya dapat sering mengatakan bahawa rangkaian telah diputuskan sambungan separuh jalan, jadi saya cuma Lulus beberapa contoh)ChatGPT
Jawapan ChatGPT versi 1.1ChatGPTDalam rangka kerja Laravel, anda boleh menggunakan pengesah borang untuk mengesahkan syarat. Langkah pelaksanaan khusus Seperti berikut:

Buat peraturan pengesahan tersuai

Dalam rangka kerja Laravel, anda boleh menggunakan perintah

untuk mencipta kelas Peraturan peraturan pengesahan tersuai. Kelas peraturan pengesahan tersuai ini perlu melaksanakan antara muka
    dan menulis logik peraturan pengesahan di dalamnya.
  • Contohnya, anda boleh mencipta kelas peraturan pengesahan tersuai bernama

    untuk mengesahkan syarat baja:

Dalam kelas

, anda boleh melaksanakan kaedah php artisan make:rule untuk berbuat demikian Pengesahan, jika pengesahan berjaya, kembalikan IlluminateContractsValidationRule, jika tidak, kembalikan
: FertilizerRule

$ php artisan make:rule FertilizerRule
Salin selepas log masuk

FertilizerRuleTulis logik pengesahan passestruefalse

dalam
namespace App\Rules;

use Illuminate\Contracts\Validation\Rule;

class FertilizerRule implements Rule
{
    public function passes($attribute, $value)
    {
        // TODO: 编写肥料条件的验证逻辑
    }

    public function message()
    {
        return 'The :attribute is invalid.';
    }
}
Salin selepas log masuk
Di dalam kelas, anda boleh menulis logik pengesahan untuk syarat baja mengikut kehendak soalan. Berikut ialah contoh:
  • Nampaknya terdapat perbezaan antara keanggunan yang diperlukan oleh topik, jadi saya terus bertanya

FertilizerRule

saya: Rasanya tidak begitu elegan Terdapat terlalu banyak jika digunakan dan ia tidak jelas dan jelas. 🎜>
<?php

namespace App\Rules;

use Illuminate\Contracts\Validation\Rule;

class FertilizerRule implements Rule
{
    public function passes($attribute, $value)
    {
        // 验证腐植酸含量
        if (!isset($value[&#39;humic_acid&#39;]) || $value[&#39;humic_acid&#39;] < 30) {
            return false;
        }

        // 验证大量元素含量
        $total_npk = $value[&#39;nitrogen&#39;] + $value[&#39;phosphorus&#39;] + $value[&#39;potassium&#39;];
        if ($total_npk < 200) {
            return false;
        }
        if ($value[&#39;nitrogen&#39;] < 70 || $value[&#39;phosphorus&#39;] < 70 || $value[&#39;potassium&#39;] < 60) {
            return false;
        }

        // 验证至少包括两种元素,单一元素净含量不低于 20 g/L
        $count = 0;
        foreach ([&#39;nitrogen&#39;, &#39;phosphorus&#39;, &#39;potassium&#39;] as $element) {
            if ($value[$element] >= 20) {
                $count++;
            }
        }
        if ($count < 2) {
            return false;
        }

        // 验证游离氨基酸含量
        if (!isset($value[&#39;amino_acid&#39;]) || $value[&#39;amino_acid&#39;] < 100) {
            return false;
        }

        // 验证微量元素含量
        $total_trace = 0;
        $trace_elements = [&#39;iron&#39;, &#39;zinc&#39;, &#39;boron&#39;, &#39;copper&#39;, &#39;manganese&#39;, &#39;molybdenum&#39;];
        foreach ($trace_elements as $element) {
            if (isset($value[$element])) {
                $total_trace += $value[$element];
            }
        }
        if (count(array_filter($value, function ($v) { return $v >= 0.5; })) < 1 || $total_trace < 20 ||
    //...代码不完整
Salin selepas log masuk
Ya Ya, kod ini memang mempunyai banyak pernyataan if, menjadikan kod sukar dibaca dan diselenggara. Saya akan mencadangkan memecahkan kod ini kepada pelbagai fungsi, masing-masing bertanggungjawab untuk mengendalikan hanya satu keadaan tertentu. Ini menjadikan kod lebih jelas dan lebih mudah dibaca dan diselenggara.
Berikut ialah pengoptimuman yang mungkin:

Kini, kami telah memecahkan logik pengesahan kepada empat fungsi bebas, masing-masing memfokuskan pada pengendalian keadaan tertentu. Ini menjadikan kod lebih ringkas dan lebih mudah difahami.

Akhir sekali, kami menggabungkan fungsi ini dan menggunakannya dalam fungsi pengesahan untuk mengesahkan nilai input. Jika input tidak sah, false dikembalikan dan mesej ralat dikeluarkan. Jika tidak, kembali benar. Perlu diambil perhatian bahawa mesej ralat di sini ditandakan dengan ulasan dan sebenarnya harus dikeluarkan melalui mekanisme pengendalian ralat yang disediakan oleh rangka kerja Laravel.

Anda boleh melihatnya

Menurut soalan saya, saya menukar cara menggunakan fungsi untuk menyelesaikan masalah ini

Saya akan terus bertanya:

saya : Rasanya masih tidak begitu elegan, sila gunakan rangka kerja laravel dan gunakan corak reka bentuk rantai tanggungjawab untuk mereka bentuk permintaan ini
 function validateHumicAcid($value) {
    return $value >= 30;
}

function validateMacroElements($nitrogen, $phosphorus, $potassium) {
    $sum = $nitrogen + $phosphorus + $potassium;
    return $sum >= 200 && $nitrogen >= 20 && $phosphorus >= 20 && $potassium >= 20;
}

function validateTraceElements($iron, $zinc, $boron, $copper, $manganese, $molybdenum) {
    $sum = $iron + $zinc + $boron + $copper + $manganese + $molybdenum;
    $atLeastOne = $iron >= 0 || $zinc >= 0 || $boron >= 0 || $copper >= 0 || $manganese >= 0 || $molybdenum >= 0;
    $atLeastSix = $sum >= 20;
    return $atLeastOne && $atLeastSix && $molybdenum <= 5;
}

function validateAminoAcids($value) {
    return $value >= 100;
}

function validate($humicAcid, $nitrogen, $phosphorus, $potassium, $iron, $zinc, $boron, $copper, $manganese, $molybdenum, $aminoAcids) {
    $isValid = true;

    if (!validateHumicAcid($humicAcid)) {
        $isValid = false;
        // 输出错误提示
    }

    if (!validateMacroElements($nitrogen, $phosphorus, $potassium)) {
        $isValid = false;
        // 输出错误提示
    }

    if (!validateTraceElements($iron, $zinc, $boron, $copper, $manganese, $molybdenum)) {
        $isValid = false;
        // 输出错误提示
    }

    if (!validateAminoAcids($aminoAcids)) {
        $isValid = false;
        // 输出错误提示
    }

    return $isValid;
}
Salin selepas log masuk

Jawapan ChatGPT versi 1.3

Baiklah, izinkan saya menunjukkan kepada anda cara mereka bentuk keperluan ini menggunakan rangka kerja Laravel dan corak reka bentuk Rantaian Tanggungjawab.

Pertama, kita perlu mentakrifkan kelas pengesah untuk mengesahkan sama ada setiap syarat dipenuhi. Kelas ini boleh melaksanakan antara muka IlluminateContractsValidationValidator dalam rangka kerja Laravel, supaya ia boleh disepadukan dengan mudah dengan komponen validator terbina dalam Laravel. ChatGPTSeterusnya, kita boleh mentakrifkan kelas asas abstrak Boleh Sah, yang mentakrifkan kaedah abstrak mengesahkan untuk mengesahkan sama ada nilai input memenuhi syarat yang ditentukan. Kita boleh mentakrifkan kelas pengesah tertentu berdasarkan setiap syarat Kelas ini mewarisi daripada Boleh Sah dan melaksanakan kaedah pengesahan untuk pengesahan khusus.
Akhir sekali, kita boleh menggunakan corak rantaian tanggungjawab untuk mengatur kelas pengesah ini supaya mereka mengesahkan nilai input mengikut turutan. Setiap kelas validator boleh menetapkan atribut seterusnya yang memegang contoh kelas validator seterusnya. Dalam kaedah pengesahan, jika pengesah semasa gagal untuk mengesahkan, kaedah pengesahan pengesah seterusnya akan dipanggil, dan seterusnya, sehingga semua pengesah telah disahkan atau seorang pengesah gagal.
Berikut ialah kod sampel untuk mengesahkan dua syarat kandungan asid humik dan kandungan makronutrien:

Ringkasan

Ya saya nampak bahawa


memberi saya jawapan yang agak sesuai untuk soalan saya

Walaupun kod ini tidak boleh digunakan secara langsung pada projek sebenar, ia juga memberi kami beberapa idea Cara melaksanakan

Tiga versi jawapan dalam contoh di atas Seorang pemula seperti saya mungkin hanya boleh memikirkan dua cara pertama untuk menyelesaikannya

ChatGPTIa sama dengan memberi saya beberapa kaedah dan idea baharu untuk menyelesaikan masalah, atau kaedah dan idea yang saya tidak tahu

Jika saya tidak mempunyai idea untuk fungsi tertentu pada masa hadapan, mengapa tidak Mari kita tanyaChatGPT~

Kajian yang disyorkan: "tutorial video laravel"

Atas ialah kandungan terperinci Contoh membuktikan bahawa ChatGPT mempunyai impak yang besar kepada pengaturcara biasa!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Akan R.E.P.O. Ada Crossplay?
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk mendapatkan kod pengembalian semasa menghantar e -mel gagal di Laravel? Bagaimana untuk mendapatkan kod pengembalian semasa menghantar e -mel gagal di Laravel? Apr 01, 2025 pm 02:45 PM

Kaedah untuk mendapatkan kod kembali apabila menghantar e -mel Laravel gagal. Apabila menggunakan Laravel untuk membangunkan aplikasi, anda sering menghadapi situasi di mana anda perlu menghantar kod pengesahan. Dan pada hakikatnya ...

Tugas Jadual Laravel tidak dilaksanakan: Apa yang harus saya lakukan jika tugas itu tidak berjalan selepas Jadual: Jalankan Perintah? Tugas Jadual Laravel tidak dilaksanakan: Apa yang harus saya lakukan jika tugas itu tidak berjalan selepas Jadual: Jalankan Perintah? Mar 31, 2025 pm 11:24 PM

Tugas Jadual Laravel menjalankan penyelesaian masalah yang tidak responsif semasa menggunakan penjadualan tugas jadual Laravel, banyak pemaju akan menghadapi masalah ini: Jadual: Jalankan ...

Di Laravel, bagaimana menangani situasi di mana kod pengesahan gagal dihantar melalui e -mel? Di Laravel, bagaimana menangani situasi di mana kod pengesahan gagal dihantar melalui e -mel? Mar 31, 2025 pm 11:48 PM

Kaedah mengendalikan kegagalan e -mel Laravel untuk menghantar kod pengesahan adalah menggunakan Laravel ...

Bagaimana untuk melaksanakan fungsi jadual tersuai untuk mengklik untuk menambah data dalam admin dcat? Bagaimana untuk melaksanakan fungsi jadual tersuai untuk mengklik untuk menambah data dalam admin dcat? Apr 01, 2025 am 07:09 AM

Cara melaksanakan fungsi jadual klik tersuai untuk menambah data dalam dcatadmin (laravel-admin) semasa menggunakan dcat ...

Perkongsian Sambungan Laravel Redis: Mengapa kaedah pilih mempengaruhi sambungan lain? Perkongsian Sambungan Laravel Redis: Mengapa kaedah pilih mempengaruhi sambungan lain? Apr 01, 2025 am 07:45 AM

Kesan perkongsian sambungan Redis dalam rangka kerja Laravel dan pilih kaedah apabila menggunakan Rangka Kerja Laravel dan Redis, pemaju mungkin menghadapi masalah: melalui konfigurasi ...

Depin Memimpin Jalan, AI Membantu: Sekilas di Peta Depai Fizik Desentralisasi dan Kecerdasan Buatan Depin Memimpin Jalan, AI Membantu: Sekilas di Peta Depai Fizik Desentralisasi dan Kecerdasan Buatan Mar 05, 2025 am 09:18 AM

Kecerdasan buatan fizikal yang terdesentralisasi (DEPAI) memimpin arah baru dalam pembangunan kecerdasan buatan dan menyediakan penyelesaian inovatif untuk mengawal robot dan infrastruktur yang berkaitan. Artikel ini akan menjalankan perbincangan mendalam mengenai DEPAI dan aplikasinya dalam bidang pemerolehan data, operasi jauh dan kecerdasan spatial, dan menganalisis prospek pembangunannya. Sebagai Ketua Pegawai Eksekutif Nvidia Huang Renxun berkata, "momen chatgpt" dalam bidang robot umum akan datang tidak lama lagi. Proses pembangunan kecerdasan buatan, dari perkakasan ke perisian, kini bergerak ke arah dunia fizikal. Dalam era populariti robot masa depan, DEPAI menyediakan peluang penting untuk membina ekosistem kecerdasan buatan fizikal berdasarkan WEB3, terutamanya apabila pasukan berpusat belum sepenuhnya menguasai pasaran. Penggunaan luas agen kecerdasan buatan fizikal autonomi akan membawa robot,

Laravel Multi-Tenant Extension Stancl/Tenancy: Bagaimana Menyesuaikan Alamat Hos Sambungan Pangkalan Data Penyewa? Laravel Multi-Tenant Extension Stancl/Tenancy: Bagaimana Menyesuaikan Alamat Hos Sambungan Pangkalan Data Penyewa? Apr 01, 2025 am 09:09 AM

Sambungan pangkalan data penyewa tersuai dalam pakej lanjutan multi-penyewa Larave Stancl/penyewaan ketika membina aplikasi multi-penyewa menggunakan pakej lanjutan multi-penyewa Larave Stancl/penyewaan, ...

Depin Memimpin Jalan, AI Membantu: Sekilas pada grafik kecerdasan buatan fizikal yang terdesentralisasi Depin Memimpin Jalan, AI Membantu: Sekilas pada grafik kecerdasan buatan fizikal yang terdesentralisasi Mar 05, 2025 pm 12:48 PM

Kebangkitan kecerdasan buatan fizikal yang terdesentralisasi (DEPAI): integrasi robot dan teknologi kecerdasan buatan Web3 berubah dengan setiap hari berlalu, dan kecerdasan buatan fizikal yang terdesentralisasi (DEPAI) telah membawa penyelesaian revolusioner untuk mengawal robot dan infrastruktur kecerdasan buatan fizikal. DEPAI berkembang maju dari pengambilalihan data dunia sebenar kepada operasi robotik pintar berdasarkan penggunaan infrastruktur fizikal (DEPIN) yang terdesentralisasi. Sebagai Ketua Pegawai Eksekutif Nvidia, Huang Renxun berkata: "Masa chatgpt dalam bidang robot umum akan datang tidak lama lagi." Pada masa akan datang, kecerdasan buatan fizikal autonomi

See all articles