Cách sử dụng with trong Laravel

Khi bạn đặt biểu mẫu tìm kiếm trong ứng dụng của mình, bạn cần sử dụng truy vấn like để nhận mẫu phù hợp. Truy vấn LIKE được sử dụng trong mệnh đề WHERE để tìm kiếm một mẫu cụ thể trong một cột. Bạn có thể sử dụng từ khóa THÍCH MySQL và ký tự đại diện % với mệnh đề where

Trong laravel, sử dụng phương thức hùng biện whereLike[], bạn có thể triển khai laravel ở đâu như truy vấn tìm kiếm, laravel ở đâu giống như nhiều cột và bộ sưu tập laravel ở đâu như

ví dụ 1. Laravel nơi Like Query sử dụng với Eloquent Model

Bạn có thể sử dụng từ khóa THÍCH MySQL và ký tự đại diện % với mệnh đề where

Ví dụ sau đại diện, làm thế nào để sử dụng nó

public function index[]{
    $users = User::where['name','LIKE',"%{$search}%"]->get[];
    return $users;                
}

Khi bạn kết xuất truy vấn whereNull đã cho ở trên, bạn sẽ nhận được truy vấn SQL sau

SELECT * FROM `users` WHERE `name` LIKE '%search%';

đọc thêm. Laravel Multiple Where Ví dụ về điều kiện

ví dụ 2. Sử dụng macro với Like

Để xác định macro, bạn chỉ cần sử dụng phương thức tĩnh macro trên lớp mà bạn muốn xác định macro. Chúng ta cần xác định một macro cho lớp Eloquent, vì vậy chúng ta có thể mở rộng nó như thế này [trong phương thức khởi động của nhà cung cấp dịch vụ]

Builder::macro['whereLike', function[$column, $search] {
  return $this->where[$column, 'LIKE', "%{$search}%"];
}];

Cách chúng ta có thể sử dụng macro này bây giờ rất đơn giản

public function index[]{
  return User::whereLike['username', $username]
   ->whereLike['email', $email]
   ->get[];
}

ví dụ 3. Laravel whereLike với nhiều cột sử dụng macro

nếu bạn muốn tìm kiếm với nhiều cột thì bạn phải mở rộng macro này để hỗ trợ nhiều cột

Builder::macro['whereLike', function[$columns, $search] {
  $this->where[function[$query] use [$columns, $search] {
    foreach[\Arr::wrap[$columns] as $column] {
      $query->orWhere[$column, $search];
    }
  }];
 
  return $this;
}];

Vì vậy, bây giờ, nếu chúng ta chuyển một cột [sử dụng hàm array_wrap, chúng ta sẽ chuyển đổi nó thành một mảng] và tìm kiếm cột đó, nhưng nếu chúng ta thêm nhiều cột vào một mảng thì chúng ta lặp qua tất cả các cột đó và tìm kiếm cụm từ tìm kiếm trong tất cả . Mọi thứ được gói gọn trong một truy vấn where vì chúng tôi không muốn truy vấn 

SELECT * FROM `users` WHERE `name` LIKE '%search%';
0 làm rối tung bất kỳ truy vấn where khác mà chúng tôi có thể thực hiện trên mô hình Eloquent

Bạn có thể sử dụng macro này ngay bây giờ như thế này

public function index[]{
 return User::whereLike[['username', 'email'], $search]->get[];
}

Cảm ơn bạn đã đọc bài viết này

đọc thêm. Cách gửi yêu cầu XÓA bằng cURL

Nếu bạn muốn quản lý Máy chủ VPS / VM của mình mà không cần chạm vào dòng lệnh, hãy xem liên kết này. ServerAvatar cho phép bạn thiết lập nhanh các trang web WordPress hoặc PHP tùy chỉnh trên VPS / VM chỉ trong vài phút. Bạn có thể lưu trữ nhiều trang web trên một VPS / VM, định cấu hình chứng chỉ SSL và theo dõi tình trạng của máy chủ mà không cần chạm vào giao diện dòng lệnh

Nếu bạn có bất kỳ thắc mắc hoặc nghi ngờ nào về chủ đề này, vui lòng liên hệ với chúng tôi. Chúng tôi sẽ cố gắng liên lạc với bạn

Laravel Create Model là một hệ thống PHP dựa trên MVC. Trong kiến ​​trúc MVC, 'M' là viết tắt của 'Model'. Một mô hình được sử dụng như một cách để truy vấn dữ liệu đến và từ bảng trong cơ sở dữ liệu. Laravel cung cấp một cách cơ bản để thực hiện điều đó bằng cách sử dụng Eloquent ORM trong đó mỗi bảng kết hợp một Mô hình để tương tác với nó

Chế độ xem chứa mã html mà ứng dụng của bạn yêu cầu và đó có thể là một chiến lược trong Laravel tách biệt logic của bộ điều khiển và logic miền khỏi cơ sở giới thiệu. Lượt xem được tìm thấy trong trình tổ chức nội dung và cách của nó là tài nguyên/lượt xem. Hãy xem hình minh họa đơn giản của các khung nhìn

Trong bài viết trước của tôi về Laravel 5. 5, tôi đã đề cập đến Bộ điều khiển [phần thứ ba của MVC] và Phần mềm trung gian. Hôm nay, tôi sẽ mô tả Mô hình và Chế độ xem của kiến ​​trúc MVC và cách những ý tưởng này được triển khai trong Laravel

Các mô hình trong Laravel 5. 5 được tạo bên trong thư mục ứng dụng. Các mô hình chủ yếu được sử dụng để tương tác với cơ sở dữ liệu bằng Eloquent ORM. Eloquent cung cấp các triển khai ActiveRecord đơn giản để tương tác với cơ sở dữ liệu

Cách dễ nhất để tạo mô hình là lệnh Artisan

php artisan make:model 

Trước tiên, hãy tạo bảng sách mới trong cơ sở dữ liệu. Sử dụng lược đồ sau

________số 8_______

Ngừng lãng phí thời gian trên máy chủ

Cloudways xử lý việc quản lý máy chủ cho bạn để bạn có thể tập trung vào việc tạo các ứng dụng tuyệt vời và giữ cho khách hàng của mình hài lòng

Tiếp theo mình sẽ tạo một model mới cho bảng sách trong Laravel. Đối với điều này, hãy chạy lệnh sau

php artisan make:model Books

Sau khi hoàn thành lệnh, một mô hình mới sẽ được tạo trong thư mục ứng dụng. Tại thời điểm này, mô hình này trông giống như

In the above code, the model class Books is extended from Illuminate\Database\Eloquent\Model class of Laravel. You will notice that there are no database CRUD operation related functions in this model. You could use several prebuilt Eloquent functions for this purpose.

Working with Eloquent ORM

The best thing about Eloquent ORM is the ease with which you could perform CRUD operations on the database. Usually, Eloquent uses the class name of the model as the name of the table. However, you could also define the name of the table explicitly by defining a protected variable `$table`.

By default Eloquent will assume that each table have a primary key of column name id and that it autoincrements. If your primary key has a different name, you can easily set it by defining it in `protected $primaryKey`. This overrides the default settings. In addition, if your primary key does not autoincrement, you can easily set it off by defining `public $incrementing` to `false`.

For example, let’s use book ISBN number as a primary key in the table. Now, I can make the following changes in the model to tell Eloquent about this primary key and that it should not be auto-incremented.

namespace App;
use Illuminate\Database\Eloquent\Model;
class Books extends Model
{
    protected $table = “my_books”;
    protected $primaryKey = “isbn_no”;
    public $incrementing = false;
}

Lưu dữ liệu bằng Eloquent

Lưu dữ liệu bằng Eloquent cực kỳ dễ dàng

Trong ví dụ trước, tôi đã tạo một tài nguyên `BooksController`

Hãy bắt đầu chỉnh sửa phương thức `store[Request $request]` để nó có thể lưu yêu cầu của tôi vào cơ sở dữ liệu. Phương pháp lưu dữ liệu đầu tiên là

public function store[Request $request]
{
    $books = new Books[];
    $books->name = $request->name;
    $books->category = $request->category;
    $books->category = $request->category;
    if[$books->save[]]{
        return true;
    }
}

Và cái thứ hai là

public function store[Request $request]
{
    if[Books::Create[$request->all[]]]{
        return true;
    }
}

Để lưu dữ liệu bằng phương thức `Create[]`, trước tiên bạn cần thực hiện hai việc. Bạn cần xác định các cột có thể điền trong mô hình

namespace App;
use Illuminate\Database\Eloquent\Model;

class Books extends Model
{
    protected $fillable = ['name','category','description'];
}

Thứ hai, đảm bảo rằng tên của tham số yêu cầu mà bạn muốn lưu trong cơ sở dữ liệu của mình giống với tên của cột trong cơ sở dữ liệu

Cập nhật dữ liệu bằng Eloquent dễ dàng như lưu dữ liệu

Bây giờ tôi sẽ chỉnh sửa phương thức `update[Request $request, Books $book]` để nó có thể cập nhật dữ liệu

public function update[Request $request, Books $books]
{
    if[$books->fill[$request->all[]]->save[]]{
        return true;
    }
}

Làm thế nào nó hoạt động? . Nếu không khớp sẽ trả về lỗi. Lý do đằng sau điều này là mô hình bị ràng buộc với phương thức cập nhật. Vì tôi đã xác định có thể điền, tất cả dữ liệu sẽ được lưu dễ dàng

Nhận tất cả các mục dữ liệu

Bây giờ chúng ta hãy chỉnh sửa phương thức `index[]` của bộ điều khiển để nó có thể trả về tất cả dữ liệu được lưu trong cơ sở dữ liệu

public function index[]
{
    $books = Books::all[];
    return $books;
}

Vì tôi đã sử dụng `$books`, theo mặc định, Laravel sẽ trả về JSON của dữ liệu

Nhận một mục dữ liệu duy nhất

Tôi sẽ chỉnh sửa phương thức `show[Books $books]` để trả về một cuốn sách cụ thể khi người dùng gửi yêu cầu nhận tới `book/{book}`. Nó sẽ trả về cuốn sách tương ứng với khóa chính

public function show[Books $books]
{
    return $books;
}

Xóa một mục dữ liệu

Bây giờ, hãy chỉnh sửa phương thức `destroy[Books $books]` của bộ điều khiển để xóa dữ liệu tương ứng với khóa chính

CREATE TABLE `books` [

 `id` int[11] NOT NULL,

 `name` varchar[256] NOT NULL,

 `category` varchar[256] NOT NULL,

 `description` text NOT NULL

];
0

Như bạn có thể thấy, Eloquent loại bỏ phần lớn công việc khi làm việc với RDBMS. Bạn có thể xác định các mối quan hệ bảng trong đó và dễ dàng lấy dữ liệu từ các bảng khác nhau. Để tìm hiểu thêm về Eloquent và phép thuật của nó, hãy tham khảo tài liệu chính thức của Eloquent

Chế độ xem trong Laravel 8. x

Lượt xem trong Laravel được tạo trong thư mục tài nguyên/lượt xem. Bạn có thể thay đổi đường dẫn cơ sở cho chế độ xem bằng cách chỉnh sửa config/view. php và thay đổi `realpath[base_path[‘resources/views’]]` sang vị trí mới cho các view

Laravel cung cấp một chế độ xem đơn giản dẫn đường đến nhà. Tải một chế độ xem trong bộ điều khiển thật dễ dàng. Bạn chỉ cần thêm phương thức `view[‘viewname’]` trong khi quay lại từ phương thức điều khiển

CREATE TABLE `books` [

 `id` int[11] NOT NULL,

 `name` varchar[256] NOT NULL,

 `category` varchar[256] NOT NULL,

 `description` text NOT NULL

];
1

`view[]` là một trình trợ giúp toàn cầu trong Laravel. Trong phương thức này, bạn chỉ cần truyền tên của chế độ xem. Ví dụ: nếu tên đầy đủ của chế độ xem là nhà. lưỡi. php, bạn chỉ cần chuyển về nhà cho phương thức `view[]`

Điều gì sẽ xảy ra nếu bạn đang lưu chế độ xem của mình bên trong một thư mục mới trong thư mục chế độ xem?

Ví dụ, nếu nhà. lưỡi. php được lưu bên trong thư mục bảng điều khiển, sau đó bạn chỉ cần chuyển tên thư mục, thêm dấu chấm “. ” và sau đó là tên của chế độ xem cho phương thức `view[]` i. e. `view[“bảng điều khiển. nhà”];`

Truyền dữ liệu sách cho Chế độ xem

Hãy tạo một view mới trong trang web Laravel với name book. lưỡi. php bên trong thư mục lượt xem. Chế độ xem này sẽ chứa đoạn mã sau

CREATE TABLE `books` [

 `id` int[11] NOT NULL,

 `name` varchar[256] NOT NULL,

 `category` varchar[256] NOT NULL,

 `description` text NOT NULL

];
2

Chế độ xem này sẽ hiển thị một cuốn sách từ bảng. Đây là cách chế độ xem này hoạt động

Tôi sẽ chuyển một cuốn sách tới chế độ xem này trong phương thức `show[Books $books]` của bộ điều khiển

CREATE TABLE `books` [

 `id` int[11] NOT NULL,

 `name` varchar[256] NOT NULL,

 `category` varchar[256] NOT NULL,

 `description` text NOT NULL

];
3

Giờ đây, bất cứ khi nào người dùng gửi yêu cầu GET tới `/book/{book}`, nó sẽ trả về chế độ xem của cuốn sách. Một số lượng lớn view trong Laravel được tạo bằng Blade Templating Engine. Bây giờ tôi sẽ cho bạn thấy động cơ này hoạt động như thế nào

Công cụ tạo khuôn lưỡi

Blade là một công cụ tạo khuôn đơn giản và mạnh mẽ cho Laravel. Bạn cũng có thể dễ dàng thêm mã PHP vanilla của mình vào đó. Các tệp mẫu Blade có phần mở rộng. lưỡi. php và được lưu trong thư mục resource/views. Bạn có thể tạo một mẫu chính và một số mẫu con có thể được mở rộng từ mẫu chính này. Trong ví dụ này, tôi sẽ bắt đầu với việc xác định bố cục chính và sau đó mở rộng nó hơn nữa. Để tìm hiểu thêm về cách tạo bố cục từ phiến, tôi khuyên bạn cũng nên đọc Tạo bố cục trong Laravel bằng Công cụ tạo khuôn phiến

Tạo bố cục chính

Tất cả bố cục chính được lưu trong thư mục bố cục bên trong thư mục tài nguyên/lượt xem

Tôi sẽ tạo một bố cục đơn giản với tên ứng dụng. lưỡi. php. Bố cục này sẽ chứa đoạn mã sau

CREATE TABLE `books` [

 `id` int[11] NOT NULL,

 `name` varchar[256] NOT NULL,

 `category` varchar[256] NOT NULL,

 `description` text NOT NULL

];
4

Bên trong chế độ xem ứng dụng, tôi đã sử dụng đánh dấu HTML và bootstrap để tạo kiểu. Tôi đã sử dụng lệnh `@yield`. Chỉ thị này được sử dụng để hiển thị nội dung cho phần nhất định. Bạn có thể chuyển một tên duy nhất cho `yield` để khi chế độ xem này được mở rộng ở chế độ xem khác, tôi có thể dễ dàng thêm nội dung mới vào phần này

Mở rộng bố cục chính

Bây giờ hãy mở rộng bố cục chính. Tôi đã tạo chế độ xem để hiển thị sách khi bắt đầu hướng dẫn này. Bây giờ tôi sẽ mở rộng nó từ bố cục chính

CREATE TABLE `books` [

 `id` int[11] NOT NULL,

 `name` varchar[256] NOT NULL,

 `category` varchar[256] NOT NULL,

 `description` text NOT NULL

];
5

Hãy xem những gì tôi đã làm. Đầu tiên, tôi nói với Blade rằng tôi đang mở rộng từ bố cục trước đó bằng cách sử dụng `@extends`. Tiếp theo, tôi đã sử dụng `@section`, liên kết nội dung với `@yield` mà tôi đã tạo trong bố cục chính. Trong phần nội dung, tôi đã xác định mã đánh dấu HTML để xem một cuốn sách

Bạn có thể làm gì hơn với Blade?

Đây là một ví dụ rất đơn giản làm nổi bật chức năng của Blade. Bạn cũng có thể sử dụng if-else và vòng lặp trong Blade. Để tìm hiểu thêm về Blade, hãy tham khảo tài liệu chính thức của Blade

Kết thúc sê-ri

Tôi bắt đầu loạt bài này với phần giới thiệu về Laravel 5. 5 và thảo luận về cách MVC hoạt động với Laravel. Tiếp theo, tôi đã trình bày cách bạn có thể thực hiện định tuyến trong Laravel 5. 5. Trong loạt bài này, tôi đã trình bày các khái niệm về MVC trong Laravel. Tôi cũng đã thảo luận về bộ điều khiển và phần mềm trung gian trong Laravel. Cuối cùng, tôi. e. , trong hướng dẫn này, tôi đã thảo luận về các mô hình và chế độ xem trong Laravel. Tôi cũng đã giới thiệu ngắn gọn về công cụ tạo mẫu Blade và chỉ ra cách tạo mẫu trong Blade

Đánh giá của khách hàng tại

“Dịch vụ lưu trữ trên nền tảng đám mây có một trong những dịch vụ khách hàng tốt nhất và tốc độ lưu trữ”

Sanjit C [Nhà phát triển trang web]

Inshal Ali

Inshal là Nhà tiếp thị nội dung tại Cloudways. Với nền tảng về khoa học máy tính, kỹ năng nội dung và rất nhiều sáng tạo, anh ấy đã giúp doanh nghiệp vươn tới bầu trời và vượt xa thông qua nội dung nói ngôn ngữ của khách hàng của họ. Ngoài công việc, bạn sẽ thấy anh ấy chủ yếu trong một số trò chơi trực tuyến hoặc trên sân bóng.

Công dụng của with [] trong Laravel là gì?

with[] được sử dụng để tải háo hức trong Laravel. Trừ khi sử dụng 2 truy vấn riêng biệt trở lên để tìm nạp dữ liệu từ cơ sở dữ liệu, chúng ta có thể sử dụng phương thức with[] sau lệnh đầu tiên. Nó cung cấp trải nghiệm người dùng tốt hơn vì chúng tôi không phải đợi một khoảng thời gian dài hơn để tìm nạp dữ liệu từ cơ sở dữ liệu.

Là gì

Sự khác biệt là => là toán tử gán được sử dụng khi tạo một mảng . Ví dụ. mảng[key => value, key2 => value2] Và -> là toán tử truy cập. Nó truy cập giá trị của một đối tượng. Theo dõi câu trả lời này để nhận thông báo.

Làm cách nào để gửi dữ liệu với tuyến đường trong Laravel?

Chúng ta có thể truyền dữ liệu trực tiếp từ các tuyến đường hoặc thông qua bộ điều khiển. .
Sử dụng chế độ xem[]
Sử dụng với[]
Sử dụng nhỏ gọn[]
Sử dụng lớp điều khiển

Làm cách nào để sử dụng hasOne trong Laravel?

Hãy giải thích việc sử dụng hasOne trong bảng nhận xét bài viết .
Tạo bình luận và mô hình bài viết. Mô hình mặt hàng. .
Tạo mối quan hệ hasOne trong mô hình vật phẩm.

Chủ Đề