Làm cách nào để sử dụng tạo hoặc cập nhật trong Laravel?

Tôi nghĩ tôi cũng nên thử một hướng dẫn về Laravel. Trên thực tế, không. Vấn đề là tôi đã gặp phải một vấn đề. Bạn biết rằng trở thành một lập trình viên có nghĩa là lười biếng. Trong ngữ cảnh của Laravel, trong khi làm việc trên bộ điều khiển cần phương thức tạo và cập nhật, đồng thời xem tài liệu, tôi đã tự hỏi tại sao chúng ta nên tạo hai biểu mẫu [khung nhìn] khác nhau cho hai phương thức

Nói ít, làm nhiều. Vì vậy, chúng ta hãy bắt tay vào công việc. Thông thường, hai phương thức mà biểu mẫu tạo và cập nhật xuất hiện là phương thức tạo [] và chỉnh sửa []. Vì vậy, hãy để tôi chỉ cho bạn cách chúng trông như thế nào trong ví dụ của tôi

public function create[]
{
	return view['companies.createupdate'];
}

public function edit[Company $company]
{
	return view['companies.createupdate', ['company' => $company]];
}

Tôi đã giả định rằng vì bộ điều khiển là một loại tài nguyên của bộ điều khiển và vì tôi nhận được mô hình bên trong phương thức edit[], nên tôi sẽ gửi mô hình đến dạng xem biểu mẫu

Bây giờ, hãy nhìn vào dạng xem biểu mẫu…

@extends['layouts.app']

@section['content']

 
    @if [isset[$company]]         @method['PUT']     @else         @endif     @csrf      

@if [isset[$company]] Edit @else Add @endif companie

     
        Simbol companie                 @error['ticker']            
{{ $message }}
        @enderror      
     
        Nume companie                 @error['name']            
{{ $message }}
        @enderror      
     
        Salveaza      
     

Như bạn có thể thấy, tùy thuộc vào việc nhận biến công ty [mô hình], tôi đang gửi biểu mẫu url cụ thể của nó. Vì vậy, nếu chúng ta có một biến $company, chúng ta sẽ quyết định về biểu mẫu và cả việc chuyển hay không chuyển trường ẩn phương thức

@if [isset[$company]]
	

	@method['PUT']

@else
	
@endif

Ngoài ra, tùy thuộc vào sự hiện diện của biến $company, chúng tôi quyết định đầu ra có thể là gì, bất kể chúng tôi nói về chuỗi đơn giản hay giá trị của đầu vào

@if [isset[$company]] Edit @else Add @endif company

Giá trị của đầu vào ở đây đang sử dụng đầu vào cũ [đối với những lần biểu mẫu chưa vượt qua trình xác thực] hoặc, làm giá trị mặc định, giá trị được gửi từ $company. Hãy lưu ý ở đây về phần này

.. value="{{ old['ticker', $company->ticker ?? ''] }}"

Điều quan trọng trước tiên là đảm bảo rằng chúng tôi có một giá trị, nếu không chúng tôi sẽ gặp sự cố khi tạo biểu mẫu

Có lẽ một ý tưởng hay ở đây cũng là đề cập đến các quy tắc xác thực. Vì vậy, đối với phương thức store[] chúng ta có

Trong bài đăng này, tôi sẽ giải thích cách sử dụng Laravel 8 và 9 Eloquent updateOrCreate[] và tầm quan trọng của nó. Laravel cung cấp updateOrCreate[] để giúp chúng ta cập nhật bản ghi nếu có và tạo nếu chưa có. Phương pháp này giúp chúng ta không phải kiểm tra thủ công bản ghi có tồn tại không thì cập nhật nếu không thì tạo. Xem bên dưới để biết ví dụ của tôi bên dưới mà không có Laravel updateOrCreate[] và với Laravel updateOrCreate[]

 

Ví dụ không có Laravel updateOrCreate[]

Chủ Đề