If you use Laravel v8.78 and MySQL 8.0.23 and onwards, you can define choosen columns as "invisible". Columns which are define as invisible will be hidden from the select * statements.
However, to do so, we must use a invisible() method in the migration, something like that:
use Illuminate\Database\Schema\Blueprint;use Illuminate\Support\Facades\Schema; Schema::table('table', function (Blueprint $table) { $table->string('secret')->nullable()->invisible();});
That's it! This will make chosen column hidden from select * statement.
Tip given by @CatS0up
Enjoyed This Tip?
Get access to all premium tutorials, video and text courses, and exclusive Laravel resources. Join our community of 10,000+ developers.
Recent Courses
[NEW] Building a Typical Laravel SaaS
8 lessons
1 h 07 min
Laravel Coding with AI Agents: Cursor, Claude Code, Codex
5 lessons
1 h 01 min
PhpStorm Junie AI for Laravel Projects: Crash Course
7 lessons
36 min