好吧,我的標題幾乎說明了我需要的一切。我正在爲我建立一個小網站,只是爲了學習laravel框架。我創建了一個登錄/註冊和一些函數來執行線程或刪除/編輯線程。我目前的問題是,登錄的用戶與寫一個線程的用戶是否相同並不重要。只是用戶登錄的事實,允許他編輯或刪除我的網頁上的每一個線程。這當然不是它應該是...這就是爲什麼我喜歡得到的說法:如果用戶登錄,有一些線程,然後讓他刪除或編輯自己的線程。如果用戶不是編寫該線程的用戶,則不要讓他顯示刪除或編輯該線程的選項。我怎麼能說Laravel,如果線程屬於這個用戶,讓他編輯或刪除線程?
現在這是我目前的HTML - 或它的更好文檔片斷:
@if(Auth::check())
<div class="panel-footer">
{!! Former::horizontal_open()->method('DELETE')->action(action("Test\\[email protected]", $thread->id))->id('conf') !!}
{!! Former::danger_submit('Delete') !!}
{!! Former::close() !!}
<a href="{{ URL::route('edit', $thread->id) }}">
<div class="btn btn-primary">Edit</div>
</a>
</div>
@endif
</div>
<a href="#">
<div class="btn pull-right"><a href="{{ action('Test\\[email protected]') }}">Go back</a></div>
</a>
因此,這只是檢查,如果用戶登錄,如果沒有,他沒有看到編輯/刪除按鈕。如果他登錄,他當然會看到他們。
現在我需要一個代碼來說明如果他是誰寫的線程相同,然後讓他編輯/刪除它。
嗯,我真的不知道我怎麼能做到這一點,我還沒有真正找到了這個..
我有兩個型號。一個用於所有線程,另一個用於所有用戶。
我在我的線程模型中做了'belongsTo'realation,並且說它屬於我的用戶表中的name屬性。
線程模型:
<?php
namespace App\Models\Thread;
use Illuminate\Database\Eloquent\Model;
class Thread extends Model {
public $table = 'thread';
public $fillable = [
'thread',
'content',
];
public function user() {
return $this->belongsTo(User::class, "name");
}
}
用戶模型:
<?php
namespace App\Models\Thread;
use Illuminate\Database\Eloquent\Model;
class User extends Model {
public $table = 'users';
public $fillable = [
'name',
];
}
好..我堅持,我希望有人能幫助我與此有關。
感謝所有幫助和支持
其他代碼部分我可以幫助:
Route::get('/show/{id}', 'Test\\[email protected]');
Route::get('/show/{id}/edit', 'Test\\[email protected]')->name('edit');
Route::put('/show/{id}/edit', ['as' => 'editing', 'uses' => 'Test\\[email protected]']);
Route::delete('/show/{id}', 'Test\\[email protected]')->name('destroy');
這就是我必須只顯示線程,或要刪除的路由/編輯線程
控制器:這是顯示功能,讓我用按鈕查看:
public function show($id)
{
$thread = Thread::query()->findOrFail($id);
return view('test.show', [
'thread' => $thread,
]);
}
看看這個https://laravel.com/docs/5.2/authorization#defining-abilities –
好吧,我看到了這一點,並瞭解它的大部分,但我更像一個laravel初學者,所以不能想象一下現在我可以從哪裏開始.. – ItzMe488