Implement strict Eloquent when developing
This commit is contained in:
parent
5f82c82818
commit
3f4634710c
9 changed files with 19 additions and 15 deletions
|
@ -53,7 +53,7 @@ class Handler extends ExceptionHandler
|
||||||
{
|
{
|
||||||
parent::report($throwable);
|
parent::report($throwable);
|
||||||
|
|
||||||
if ($this->shouldReport($throwable)) {
|
if (config('logging.slack') && $this->shouldReport($throwable)) {
|
||||||
$guzzle = new Client([
|
$guzzle = new Client([
|
||||||
'headers' => [
|
'headers' => [
|
||||||
'Content-Type' => 'application/json',
|
'Content-Type' => 'application/json',
|
||||||
|
|
|
@ -41,13 +41,14 @@ class NotesController extends Controller
|
||||||
/**
|
/**
|
||||||
* Process a request to make a new note.
|
* Process a request to make a new note.
|
||||||
*
|
*
|
||||||
* @return \Illuminate\Http\RedirectResponse
|
* @param Request $request
|
||||||
|
* @return RedirectResponse
|
||||||
*/
|
*/
|
||||||
public function store(): RedirectResponse
|
public function store(Request $request): RedirectResponse
|
||||||
{
|
{
|
||||||
Note::create([
|
Note::create([
|
||||||
'in-reply-to' => request()->input('in-reply-to'),
|
'in_reply_to' => $request->input('in-reply-to'),
|
||||||
'note' => request()->input('content'),
|
'note' => $request->input('content'),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
return redirect('/admin/notes');
|
return redirect('/admin/notes');
|
||||||
|
|
|
@ -111,7 +111,7 @@ class FeedsController extends Controller
|
||||||
*/
|
*/
|
||||||
public function notesJson()
|
public function notesJson()
|
||||||
{
|
{
|
||||||
$notes = Note::latest()->take(20)->get();
|
$notes = Note::latest()->with('media')->take(20)->get();
|
||||||
$data = [
|
$data = [
|
||||||
'version' => 'https://jsonfeed.org/version/1',
|
'version' => 'https://jsonfeed.org/version/1',
|
||||||
'title' => 'The JSON Feed for ' . config('app.display_name') . '’s notes',
|
'title' => 'The JSON Feed for ' . config('app.display_name') . '’s notes',
|
||||||
|
|
|
@ -23,7 +23,7 @@ class FrontPageController extends Controller
|
||||||
return (new ActivityStreamsService())->siteOwnerResponse();
|
return (new ActivityStreamsService())->siteOwnerResponse();
|
||||||
}
|
}
|
||||||
|
|
||||||
$notes = Note::latest()->get();
|
$notes = Note::latest()->with(['media', 'client', 'place'])->get();
|
||||||
$articles = Article::latest()->get();
|
$articles = Article::latest()->get();
|
||||||
$bookmarks = Bookmark::latest()->get();
|
$bookmarks = Bookmark::latest()->get();
|
||||||
$likes = Like::latest()->get();
|
$likes = Like::latest()->get();
|
||||||
|
|
|
@ -141,7 +141,6 @@ class Note extends Model
|
||||||
*
|
*
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
#[ArrayShape(['note' => 'null|string'])]
|
|
||||||
public function toSearchableArray(): array
|
public function toSearchableArray(): array
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
|
@ -190,7 +189,7 @@ class Note extends Model
|
||||||
/**
|
/**
|
||||||
* Provide the content_html for JSON feed.
|
* Provide the content_html for JSON feed.
|
||||||
*
|
*
|
||||||
* In particular we want to include media links such as images.
|
* In particular, we want to include media links such as images.
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -5,6 +5,7 @@ namespace App\Providers;
|
||||||
use App\Models\Note;
|
use App\Models\Note;
|
||||||
use App\Observers\NoteObserver;
|
use App\Observers\NoteObserver;
|
||||||
use Codebird\Codebird;
|
use Codebird\Codebird;
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Pagination\LengthAwarePaginator;
|
use Illuminate\Pagination\LengthAwarePaginator;
|
||||||
use Illuminate\Support\Collection;
|
use Illuminate\Support\Collection;
|
||||||
|
@ -102,6 +103,9 @@ class AppServiceProvider extends ServiceProvider
|
||||||
->forceAttribute('a', 'rel', 'noopener nofollow')
|
->forceAttribute('a', 'rel', 'noopener nofollow')
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Turn on Eloquent strict mode when developing
|
||||||
|
Model::shouldBeStrict(! $this->app->isProduction());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
<span class="u-category h-card mini-h-card"><a class="u-url p-name" href="{{ $contact->homepage }}">{!! $contact->name !!}</a><span class="hovercard">@if ($contact->facebook)<a class="u-url" href="https://www.facebook.com/{{ $contact->facebook }}"><img class="social-icon" src="/assets/img/social-icons/facebook.svg"> {{ $contact->facebook_name ?: 'Facebook' }}</a>@endif @if ($contact->twitter)<a class="u-url" href="https://twitter.com/{{ $contact->twitter }}"><img class="social-icon" src="/assets/img/social-icons/twitter.svg"> {{ $contact->twitter }}</a>@endif<img class="u-photo" alt="" src="{{ $contact->photo }}"></span></span>
|
<span class="u-category h-card mini-h-card"><a class="u-url p-name" href="{{ $contact->homepage }}">{!! $contact->name !!}</a><span class="hovercard">@if ($contact->facebook)<a class="u-url" href="https://www.facebook.com/{{ $contact->facebook }}"><img class="social-icon" src="/assets/img/social-icons/facebook.svg"> Facebook</a>@endif @if ($contact->twitter)<a class="u-url" href="https://twitter.com/{{ $contact->twitter }}"><img class="social-icon" src="/assets/img/social-icons/twitter.svg"> {{ $contact->twitter }}</a>@endif<img class="u-photo" alt="" src="{{ $contact->photo }}"></span></span>
|
||||||
|
|
|
@ -9,10 +9,10 @@
|
||||||
<div class="e-content p-name">
|
<div class="e-content p-name">
|
||||||
{!! $note->note !!}
|
{!! $note->note !!}
|
||||||
@foreach($note->media as $media)
|
@foreach($note->media as $media)
|
||||||
@if($media->type == 'image') <a class="naked-link" href="{{ $media->url }}"><img class="u-photo" src="{{ $media->url }}" alt="" @if($media->image_widths !== null) srcset="{{ $media->url }} {{ $media->image_widths }}w, {{ $media->mediumurl }} 1000w, {{ $media->smallurl }} 500w" sizes="80vh"@endif></a>@endif
|
@if($media->type === 'image') <a class="naked-link" href="{{ $media->url }}"><img class="u-photo" src="{{ $media->url }}" alt="" @if($media->image_widths !== null) srcset="{{ $media->url }} {{ $media->image_widths }}w, {{ $media->mediumurl }} 1000w, {{ $media->smallurl }} 500w" sizes="80vh"@endif></a>@endif
|
||||||
@if($media->type == 'audio') <audio class="u-audio" src="{{ $media->url }}" controls>@endif
|
@if($media->type === 'audio') <audio class="u-audio" src="{{ $media->url }}" controls>@endif
|
||||||
@if($media->type == 'video') <video class="u-video" src="{{ $media->url }}" controls>@endif
|
@if($media->type === 'video') <video class="u-video" src="{{ $media->url }}" controls>@endif
|
||||||
@if($media->type == 'download') <p><a class="u-attachment" href="{{ $media->url }}">Download the attached media</a></p>@endif
|
@if($media->type === 'download') <p><a class="u-attachment" href="{{ $media->url }}">Download the attached media</a></p>@endif
|
||||||
@endforeach
|
@endforeach
|
||||||
</div>
|
</div>
|
||||||
@if ($note->twitter_content)
|
@if ($note->twitter_content)
|
||||||
|
@ -25,7 +25,6 @@
|
||||||
<a class="u-url" href="/notes/{{ $note->nb60id }}"><time class="dt-published" datetime="{{ $note->iso8601 }}" title="{{ $note->iso8601 }}">{{ $note->humandiff }}</time></a>@if($note->client) via <a class="client" href="{{ $note->client->client_url }}">{{ $note->client->client_name }}</a>@endif
|
<a class="u-url" href="/notes/{{ $note->nb60id }}"><time class="dt-published" datetime="{{ $note->iso8601 }}" title="{{ $note->iso8601 }}">{{ $note->humandiff }}</time></a>@if($note->client) via <a class="client" href="{{ $note->client->client_url }}">{{ $note->client->client_name }}</a>@endif
|
||||||
@if($note->place)@if($note->getOriginal('note')) in <span class="p-location h-card"><a class="p-name u-url" href="{{ $note->place->longurl }}">{{ $note->address }}</a><data class="p-latitude" value="{{ $note->place->latitude }}"></data><data class="p-longitude" value="{{ $note->place->longitude }}"></data></span>@endif
|
@if($note->place)@if($note->getOriginal('note')) in <span class="p-location h-card"><a class="p-name u-url" href="{{ $note->place->longurl }}">{{ $note->address }}</a><data class="p-latitude" value="{{ $note->place->latitude }}"></data><data class="p-longitude" value="{{ $note->place->longitude }}"></data></span>@endif
|
||||||
@elseif($note->address) in <span class="p-location h-adr">{!! $note->address !!}<data class="p-latitude" value="{{ $note->latitude }}"></data><data class="p-longitude" value="{{ $note->longitude }}"></data></span>@endif
|
@elseif($note->address) in <span class="p-location h-adr">{!! $note->address !!}<data class="p-latitude" value="{{ $note->latitude }}"></data><data class="p-longitude" value="{{ $note->longitude }}"></data></span>@endif
|
||||||
@if($note->replies_count > 0) @include('templates.replies-icon'): {{ $note->replies_count }}@endif
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="syndication-links">
|
<div class="syndication-links">
|
||||||
|
|
|
@ -41,6 +41,7 @@ class NotesTest extends TestCase
|
||||||
$this->actingAs($user)->post('/admin/notes', [
|
$this->actingAs($user)->post('/admin/notes', [
|
||||||
'content' => 'A new test note',
|
'content' => 'A new test note',
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$this->assertDatabaseHas('notes', [
|
$this->assertDatabaseHas('notes', [
|
||||||
'note' => 'A new test note',
|
'note' => 'A new test note',
|
||||||
]);
|
]);
|
||||||
|
|
Loading…
Add table
Reference in a new issue