- 在模型中定义查询方法:
namespace App\Models; use Illuminate\Database\Eloquent\Model; class User extends Model { public function getByStatus($status) { return $this->where('status', $status)->get(); } }
- 在控制器中使用模型的查询方法:
use App\Models\User; class UserController extends Controller { public function index() { $user = new User(); // 调用模型中的查询方法 $activeUsers = $user->getByStatus('active'); return view('users.index', ['users' => $activeUsers]); } }
- 在模型中定义查询方法:
namespace App\Models; use Illuminate\Database\Eloquent\Model; class User extends Model { public static function searchByName($name) { return self::where('name', $name)->get(); } }
- 在控制器中调用查询方法:
use App\Models\User; class UserController extends Controller { public function search(Request $request) { $name = $request->input('name'); // 调用模型的查询方法 $users = User::searchByName($name); return view('users.index', ['users' => $users]); } }
在上面的示例中,
User
模型中定义了一个名为searchByName
的查询方法,该方法接收一个名称参数,并通过self::where
在数据库中进行查询。然后,在UserController
控制器的search
方法中,我们获取传入的名称并调用User::searchByName
方法来获取查询结果。这种方式使得控制器更加简洁,将查询逻辑封装在模型中,提高了代码的复用性和可读性。同时,它也符合 MVC(模型-视图-控制器)的设计模式。
在 Laravel 中,将模型的查询方法 self::where 与控制器结合使用是一种常见的操作方式。这样可以将业务逻辑更好地分离
最新推荐文章于 2023-08-20 18:15:54 发布