1
0
mirror of https://github.com/robonen/education-project.git synced 2026-03-20 02:44:31 +00:00

Новости(CRUD + PhotoStorage)

This commit is contained in:
ashen-1-dev
2020-12-15 19:46:13 +07:00
parent c9b4427d99
commit 459fd1c37d
8 changed files with 15 additions and 9 deletions

View File

@@ -2,6 +2,7 @@
namespace App\Http\Controllers\News; namespace App\Http\Controllers\News;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use App\Models\NewsFile;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use App\Models\News; use App\Models\News;
@@ -34,7 +35,10 @@ class NewsController extends Controller
public function show(News $news) { public function show(News $news) {
return response()->json($news, 200); return response()->json([
$news,
'photo_id' => NewsFile::where('news_id', '=', $news->id)->get(['id'])
], 200);
} }
public function edit(News $news, Request $request) { public function edit(News $news, Request $request) {

View File

@@ -40,6 +40,7 @@ class NewsFileController extends Controller
$request->name . $ext $request->name . $ext
]); ]);
$news->photo_uri = '/storage/news' . '/' . $newsId . '/' . $type . '/' . $request->name; $news->photo_uri = '/storage/news' . '/' . $newsId . '/' . $type . '/' . $request->name;
$news->save();
return true; return true;
} }
return false; return false;

View File

@@ -8,6 +8,6 @@ use Illuminate\Database\Eloquent\Model;
class BankTaskFile extends Model class BankTaskFile extends Model
{ {
use HasFactory; use HasFactory;
protected $table = 'bank_tasks_files'; protected $table = 'bank_task_files';
protected $fillable = ['name', 'type', 'extension', 'url', 'banktask_id']; protected $fillable = ['name', 'type', 'extension', 'url', 'banktask_id'];
} }

View File

@@ -9,4 +9,5 @@ class NewsFile extends Model
{ {
use HasFactory; use HasFactory;
protected $table = 'news_files'; protected $table = 'news_files';
protected $fillable = ['name', 'type', 'extension', 'url', 'news_id'];
} }

View File

@@ -57,7 +57,7 @@ class RouteServiceProvider extends ServiceProvider
protected function configureRateLimiting() protected function configureRateLimiting()
{ {
RateLimiter::for('api', function (Request $request) { RateLimiter::for('api', function (Request $request) {
return Limit::perMinute(60)->by(optional($request->user())->id ?: $request->ip()); return Limit::perMinute(100)->by(optional($request->user())->id ?: $request->ip());
}); });
} }
} }

View File

@@ -13,7 +13,7 @@ class CreateBankTaskFilesTable extends Migration
*/ */
public function up() public function up()
{ {
Schema::create('bank_tasks_files', function (Blueprint $table) { Schema::create('bank_task_files', function (Blueprint $table) {
$table->bigIncrements('id'); $table->bigIncrements('id');
$table->string('name'); $table->string('name');
$table->string('type'); $table->string('type');
@@ -23,7 +23,7 @@ class CreateBankTaskFilesTable extends Migration
$table->unsignedInteger('banktask_id'); $table->unsignedInteger('banktask_id');
$table->foreign('banktask_id') $table->foreign('banktask_id')
->references('id')->on('bank_tasks') ->references('id')->on('bank_tasks')
->onDelete('no action'); ->onDelete('cascade');
}); });
} }
@@ -35,6 +35,6 @@ class CreateBankTaskFilesTable extends Migration
*/ */
public function down() public function down()
{ {
Schema::dropIfExists('bank_tasks_files'); Schema::dropIfExists('bank_task_files');
} }
} }

View File

@@ -22,7 +22,7 @@ class CreateNewsFilesTable extends Migration
$table->unsignedInteger('news_id'); $table->unsignedInteger('news_id');
$table->foreign('news_id') $table->foreign('news_id')
->references('id')->on('news') ->references('id')->on('news')
->onDelete('no action'); ->onDelete('cascade');
}); });
} }

View File

@@ -50,5 +50,5 @@ Route::group(['prefix' => 'news'], function () {
Route::put('/{news}', 'News\NewsController@edit'); Route::put('/{news}', 'News\NewsController@edit');
Route::delete('/{news}', 'News\NewsController@delete'); Route::delete('/{news}', 'News\NewsController@delete');
Route::post('/{news}/addphoto', 'News\NewsFileController@store'); Route::post('/{news}/addphoto', 'News\NewsFileController@store');
Route::delete('/{file}', 'News\NewsFileController@delete'); Route::delete('/photo/{file}', 'News\NewsFileController@delete');
}); });