Lajur tutorial Laravel berikut akan memperkenalkan kepada anda perubahan dalam versi terkini Laravel 9.35 saya harap ia akan membantu semua orang!
Pasukan Laravel mengeluarkan versi 9.35, yang mempunyai tatabahasa e-mel ganti baharu yang menarik, fungsi "mod ketat" bagi Eloquent. Sintaks E-mel GantiTaylor Otwell menyumbang sintaks boleh e-mel dengan mengembalikan "objek padat yang menyatakan kandungan dan sifat boleh e-mel". Berikut ialah contoh perihalan permintaan tariknya:
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Address;
use Illuminate\Mail\Mailables\Attachment;
use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope;
use Illuminate\Queue\SerializesModels;
class InvoicePaid extends Mailable
{
use Queueable, SerializesModels;
/**
* 创建一个邮件实例
*
* @return void
*/
public function __construct()
{
//
}
/**
* 获取邮件信封
*
* @return \Illuminate\Mail\Mailables\Envelope
*/
public function envelope()
{
return new Envelope(
subject: 'Invoice Paid',
cc: [new Address('foo@example.com', 'Example Name')],
tags: [],
metadata: [],
);
}
/**
* 获取邮件内容定义
*
* @return \Illuminate\Mail\Mailables\Content
*/
public function content()
{
return new Content(
view: 'html-view-name',
text: 'text-view-name',
);
}
/**
* 获取邮件的附件
*
* @return \Illuminate\Mail\Mailables\Attachment[]
*/
public function attachments()
{
return [
Attachment::fromPath('/path/to/file'),
];
}
}
Salin selepas log masuk
Cara tradisional untuk mentakrifkan e-mel menggunakan tidak akan dialih keluar. Apa yang saya suka tentang contoh di atas ialah menggunakan parameter bernama PHP 8 adalah lebih jelas. build()
Mod "ketat" fasihChris Morrell dan Taylor Otwell bekerjasama untuk membangunkan mod ketat Eloquent, yang menyokong ciri berikut:
Tiada pemuatan malas-
Pengecualian apabila menetapkan sifat tidak boleh diisi- Pengecualian apabila mengakses sifat yang tidak dapat diambil atau tidak wujud
-
Untuk menggunakan mod ketat dalam pembangunan, tambah yang berikut Dalam kaedah daripada pembekal perkhidmatan berdaftar: Kaedah boot()
Model::shouldBeStrict();
Salin selepas log masuk
ialah pintasan untuk membolehkan semua yang berikut: shouldBeStrict()
Model::preventLazyLoading();
Model::preventSilentlyDiscardingAttributes();
Model::preventsAccessingMissingAttributes();
Salin selepas log masuk
Muatkan model usang menggunakan penghalaan sumber Andrew Brown menyediakan keupayaan untuk memuatkan model yang tidak digunakan dengan penghalaan sumber menggunakan sintaks penghalaan berikut:
// 所有终结点
Route::resource('users', UserController::class)->withTrashed();
// 仅`显示`
Route::resource('users', UserController::class)->withTrashed(['show']);
Salin selepas log masuk
Nota Keluaran Anda boleh lihat di bawah pada GitHub Senarai penuh ciri dan kemas kini serta perbezaan baharu antara [9.34.0] dan 9.35.0](github.com/laravel/framework/compa...) Nota keluaran berikut diambil terus daripada log perubahan: v9.35.0Ditambah
Benarkan model yang tidak digunakan untuk dimuatkan untuk penghalaan sumber (#44405) ke - dan lain-lain (#44283)
- Perisian tengah pengawal yang tidak menyelesaikan pengawal (#44516)
Illuminate/Database/Eloquent/Model::shouldBeStrict()
Pilih sintaks yang boleh dihantar (#44462) -
- Tetap
Memperbaiki masalah fungsi agregat (denganSum, dsb.) dalam hubungan banyak-ke-banyak rujukan sendiri (#44286)
Memperbaiki masalah menggunakan atribut kelas statik sebagai templat atribut (#44473) - Boleh dilalui harus diutamakan berbanding JsonSerializable dalam Nilai Enumerate (#44456)
- Ditetapkan
- jadi ia adalah pilihan boolean, bukan nilai (#44505)
-
make:cast --inbound
Ubah suai kaedah ujian
. Gunakan json_encode untuk menjadikan mesej ralat lebih mudah dibaca (#44397)
Biar - mengembalikan nilai pulangan panggilan balik (#44457)
- Hanya muatkan model usang pada laluan yang berkaitan (#44478 )
Model::without Timestamps()
Tambah sambungan PHP tambahan pada fungsi shouldBlockPhpUpload (#44512)- Daftar cutInternals casters untuk objek bising terutamanya (#44514)
- Gunakan kaedah dapatkan untuk mengakses Tetapan kawasan aplikasi (# 44521)
-
Hanya kembalikan respons bukan nol daripada saluran (09d53ee, 3944a3e) -
Pemadanan saluran yang betul (#44531) -
Pindahkan komponen mel (#44527) -
- Alamat asal: https://laravel-news.com/laravel-9-35-0
Alamat terjemahan: https://learnku.com/ laravel/t/ 72658
Atas ialah kandungan terperinci Laravel 9.35 dikeluarkan! Lihat apakah perubahan baharu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!